Android磨损活动onKeyDown没有被调用

时间:2018-05-08 20:58:56

标签: android wear-os gesture onkeydown

这不是重复,而是Android的特定情况。我正在尝试让Android佩戴应用程序在执行某些手势时执行某些操作。但我意识到根本没有调用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);
}

修改

我首先认为问题已经解决,因为我添加了许可。但该许可被弃用,并且与此案件无关。然后,当评论中有人建议切换手势时,我意识到有些地方实际上使用了倾斜手势。一种是倾斜和唤醒手表,由Wear OS应用程序控制。第二种是称为启用手势的磨损设置。这是必需的步骤,因为它也通过校准教程。因此,这件事并没有这样的许可,必须手动完成。一旦我启用并完成了教程,就会调用keydown事件。谢谢大家: - )

0 个答案:

没有答案