Сбой вибрации Android

Я хочу добавить виброотклик для игры, которую я разрабатываю, вместе с музыкальной игрой, например, «победитель» и вибрационный шаблон.

Проблема в том, что когда я добавляю вибрирующие предложения, мое приложение вылетает.

Например:

 private void Down()
  {
    soundM.playSound(Sound.SOUND_NEWINTENT);

    for (int i=0 ; i<8 ; i++) {
      for (int j=0 ; j<12 ; j++) {
        if (Play[i][j] != null) {
          Play[i][j].moveDown();

          if (Play[i][j].getSpritePosition().y>=380) {
            Sprite.updateState(Sprite.STATE_GAME_LOST);
            endOfGame = true;

            soundM.playSound(Sound.SOUND_LOST);
            vib = (Vibrator)getSystemService(Context.VIBRATOR_SERVICE); 
            vib.vibrate(500); 

          }
        }
      }
    }

Это не внутри действия, поэтому я не могу реализовать что-то вроде этого Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE), потому что это оператор действия. Я попытался объявить public Vibrator vib;, а затем реализовать код, который я показал выше, но когда проигранная игра возвращается, приложение вылетает.

Я также пытался сделать это через «уведомление», но результат тот же, приложение вылетает.

Любая идея, как я могу реализовать вибрацию на нем?

Спасибо!!

P.S.: У меня android.permission.VIBRATE, так что проблема не в нем. На самом деле у меня работает вибрация в меню.


person Oriol    schedule 12.07.2011    source источник
comment
В чем твоя ошибка? Пожалуйста, распечатайте трассировку стека.   -  person Otra    schedule 12.07.2011


Ответы (1)


Я объявляю общедоступный объект вибратора в действии, которое вызывает игровой объект. В моем случае действие onCreate запускает MainGamePanel, который расширяет SurfaceView. Итак, в действии onCreate я объявляю объект вибратора и инициализирую его с помощью

public static Vibrator v;

v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);

//Then when I want to game to vibrate, inside of MainGamePanel I call

long[] pattern = { 0, 200, 500 };

DroidzActivity.v.vibrate(pattern, 0);

Надеюсь это поможет!

person Chris    schedule 12.07.2011
comment
вооооо спасибо!! Это очень помогает мне, на самом деле, это решило мою проблему! :) - person Oriol; 12.07.2011