这不是重复,而是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事件。谢谢大家: - )