这不是重复的,而是 Android Wear 的一个特定案例。我试图让 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 事件就会被调用。感谢大家 :-)
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)