2011-02-06 4 views
2

Я использую следующий фрагмент, чтобы вибрировать телефон в определенном шаблоне, но он бросает и ArrayIndexOutOfBoundsException.Vibrator.vibrate() throws ArrayIndexOutOfBoundsException

vibrator.vibrate(new long[] { selectedDuration, CONSTANT_DELAY }, REPEAT); 

Но

vibrator.vibrate(VIBRATE_DURATION); 

работает отлично. Любые указатели?

ответ

9

документы говорят:

Если вы хотите повторить, передать индекс в шаблон, на котором, чтобы начать повторение.

Средство REPEAT допускается только 0 или 1 в вашем случае.

Это реализация:

public void vibrate(long[] pattern, int repeat) 
{ 
    // catch this here because the server will do nothing. pattern may 
    // not be null, let that be checked, because the server will drop it 
    // anyway 
    if (repeat < pattern.length) { 
     try { 
      mService.vibratePattern(pattern, repeat, mToken); 
     } catch (RemoteException e) { 
     } 
    } else { 
     throw new ArrayIndexOutOfBoundsException(); 
    } 
} 
+0

REPEAT может быть 0 или 1. – Thomas

+0

Спасибо, конечно ... исправлен. – sstn

+0

Спасибо, как вы сказали. –

Смежные вопросы