如何捕获(拦截)长按蓝牙设备呼叫按钮(android)?
答案 0 :(得分:6)
您正在寻找的是android.intent.action.VOICE_COMMAND
,这是一个活动意图,而不是接收者意图。您的清单中需要以下内容:
<activity android:name="LongPressActivity">
<intent-filter>
<action android:name="android.intent.action.VOICE_COMMAND"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
一旦您的活动开始,就会出现问题。 Voice Command应用程序中使用的大多数API都是隐藏的,因此您必须跳过火焰圈来访问它们。使用反射,或参见this series of articles。
答案 1 :(得分:2)
你的意思是Intent.ACTION_CALL_BUTTON
动作,而不是长按?这不存在,Android仅提供有限数量的标准操作,并且不包括长按物理按钮。
虽然可以通过覆盖活动类中的onKeyLongPress
方法来打开自己的活动。
@Override
public boolean onKeyLongPress(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_CALL) {
// do your stuff here
return true;
}
return false;
}