Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/211.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在android应用程序中检测蓝牙通话/媒体按钮按下_Android_Bluetooth_Broadcastreceiver_Android Broadcast - Fatal编程技术网

如何在android应用程序中检测蓝牙通话/媒体按钮按下

如何在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

我需要在我的应用程序中检测蓝牙设备按钮的点击。我关注了许多stackoverflow链接,但似乎对我不起作用

我正在使用广播接收器,如下所示:

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);

嘿,我已经找了好几天的解决方案了,这个链接对我很有效,看看你是否还没有解决它