Android износ активности на ключе не вызывается - PullRequest
0 голосов
/ 08 мая 2018

Это не дубликат, а особый случай износа Android. Я пытаюсь заставить приложение Android Wear что-то делать при выполнении определенных жестов. Но я понял, что событие onKeyDown () вообще не вызывается. Любая помощь или информация я в этом отношении полезна. Вот мой простой фрагмент кода.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_gesture_ema);


    Log.d(TAG, "Inside on create");

    //Show prompt window on top always
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED + WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON +
            WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);

    //Prompt vibrator
    vibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
    if (vibrator != null) {
        vibrator.vibrate(VIBRATION_PATTERN_INTENSE, -1);
    }

   // mTextView = (TextView) findViewById(R.id.text);


}

@Override
public boolean onKeyDown(int keyCode, KeyEvent event){
    Log.d(TAG, "Inside keydown");
    switch (keyCode){
        case KeyEvent.KEYCODE_NAVIGATE_NEXT:
            Toast.makeText(this, "NAVIGATE_NEXT", Toast.LENGTH_LONG).show();
            Log.d(TAG, "NAVIGATE_NEXT");
            vibrator.cancel();
            return true;
        case KeyEvent.KEYCODE_NAVIGATE_PREVIOUS:
            Toast.makeText(this, "NAVIGATE_PREVIOUS", Toast.LENGTH_LONG).show();
            Log.d(TAG, "NAVIGATE_PREVIOUS");
            vibrator.cancel();
            return true;
    }

    return super.onKeyDown(keyCode, event);
}

EDIT

Сначала я подумал, что проблема была решена из-за разрешения, которое я добавил. Но это разрешение устарело, и оно не имело ничего общего с этим делом. Затем, когда кто-то в комментариях предложил включить жесты, я понял, что есть места, где фактически используется жест наклона. Один из них - наклонить и разбудить часы, которые контролируются приложением Wear OS. Второе - в настройках износа, называемых включением жеста. Это обязательный шаг, поскольку он также проходит обучение калибровке. Следовательно, эта вещь не имеет разрешения как таковая и должна быть сделана вручную. Как только я включил это и закончил учебник, вызывалось событие keydown. Спасибо всем: -)

...