如何连接到Android中的Power按钮?

如何连接到Android中的Power按钮?

在Android设备上,只有音量按钮和电源按钮,我想让应用程序对按下电源按钮(长和短)做出反应。这是怎么做的?



BIG阳
浏览 707回答 3
3回答

汪汪一只猫

现有的答案并没有完全回答这个问题,并且遗漏了足够的细节,如果没有更多的调查,它们就无法发挥作用。我会分享我在解决这个问题上所学到的。首先,需要向清单文件添加以下权限:<uses-permission&nbsp;android:name="android.permission.PREVENT_POWER_KEY"&nbsp;/>要处理短的和长的按压,请将以下重写添加到活动类中:@Overridepublic&nbsp;boolean&nbsp;onKeyDown(int&nbsp;keyCode,&nbsp;KeyEvent&nbsp;event)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(keyCode&nbsp;==&nbsp;KeyEvent.KEYCODE_POWER)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Do&nbsp;something&nbsp;here... &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;event.startTracking();&nbsp;//&nbsp;Needed&nbsp;to&nbsp;track&nbsp;long&nbsp;presses &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;true; &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;super.onKeyDown(keyCode,&nbsp;event);}@Overridepublic&nbsp;boolean&nbsp;onKeyLongPress(int&nbsp;keyCode,&nbsp;KeyEvent&nbsp;event)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(keyCode&nbsp;==&nbsp;KeyEvent.KEYCODE_POWER)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Do&nbsp;something&nbsp;here... &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;true; &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;super.onKeyLongPress(keyCode,&nbsp;event);}注意:值得注意的是,onKeydown()将在onKeyLongPress之前触发多次,因此您可能希望触发onKeyUp()或其他逻辑,以防止在用户实际按住onKeydown()时对一系列onKeydown()调用采取行动。我认为下一部分只适用于CyanogenMod。&nbsp;如果防止电源键常数是未定义的,所以您不应该需要它。要开始拦截电源密钥,需要从活动中设置以下标志:getWindow().addFlags(WindowManager.LayoutParams.PREVENT_POWER_KEY);若要停止拦截电源密钥(允许标准功能),请执行以下操作:getWindow().clearFlags(WindowManager.LayoutParams.PREVENT_POWER_KEY);如果您愿意,可以在程序中反复地在这两种模式之间来回切换。

慕姐4208626

解决办法:@Overridepublic&nbsp;boolean&nbsp;dispatchKeyEvent(KeyEvent&nbsp;event)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(event.getKeyCode()&nbsp;==&nbsp;KeyEvent.KEYCODE_POWER)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Intent&nbsp;i&nbsp;=&nbsp;new&nbsp;Intent(this,&nbsp;ActivitySetupMenu.class); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;startActivity(i); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;true; &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;super.dispatchKeyEvent(event);}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Android