如何在android应用程序中检测蓝牙通话/媒体按钮按下
我需要在我的应用程序中检测蓝牙设备按钮的点击。我关注了许多stackoverflow链接,但似乎对我不起作用 我正在使用广播接收器,如下所示:如何在android应用程序中检测蓝牙通话/媒体按钮按下,android,bluetooth,broadcastreceiver,android-broadcast,Android,Bluetooth,Broadcastreceiver,Android Broadcast,我需要在我的应用程序中检测蓝牙设备按钮的点击。我关注了许多stackoverflow链接,但似乎对我不起作用 我正在使用广播接收器,如下所示: public class RemoteControlReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if (Intent.ACTION_MED
public class RemoteControlReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (Intent.ACTION_MEDIA_BUTTON.equals(intent.getAction())) {
KeyEvent event = (KeyEvent)intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT);
if (KeyEvent.KEYCODE_MEDIA_PLAY == event.getKeyCode()) {
//call my method
}
}
}
}
我的名单如下:
<receiver android:name=".RemoteControlReceiver" >
<intent-filter>
<action android:name="android.intent.action.MEDIA_BUTTON" />
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</receiver>
有人能提出一条出路吗?
提前感谢。您的API级别是否至少为11级?代码KEYCODE_MEDIA_PLAY是在API级别11中添加的。自API级别3起,就存在KEYCODE\u MEDIA\u PLAY\u PAUSE代码 另外,您是否尝试过在不指定类别的情况下配置意图过滤器 RemoteControlReceiver类是否在应用程序的根包中?它可能无法找到“.RemoteControlReceiver” 除此之外,我看不出你哪里做错了什么 我在几篇文章中读到,你可能还需要调用registerDiaButtoneVentReceiver和unregisterMediaButtonEventReceiver。你试过这个吗 注册:
audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
componentName = new ComponentName(getPackageName(),
RemoteControlReceiver.class.getName());
audioManager.registerMediaButtonEventReceiver(componentName);
以及注销:
audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
componentName = new ComponentName(getPackageName(),
RemoteControlReceiver.class.getName());
audioManager.registerMediaButtonEventReceiver(componentName);
audioManager.unregisterMediaButtonEventReceiver(componentName);
嘿,我已经找了好几天的解决方案了,这个链接对我很有效,看看你是否还没有解决它