首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android 6不为音乐事件注册BroadcastReceiver。

Android 6不为音乐事件注册BroadcastReceiver。
EN

Stack Overflow用户
提问于 2017-04-03 21:24:28
回答 1查看 180关注 0票数 0

在Android 4中,所有功能都很好。在Android6中,不调用动态注册的onReceive()BroadcastReceiver。我用以下代码注册接收方:

代码语言:javascript
复制
IntentFilter filter = new IntentFilter();
filter.addAction("com.android.music.metachanged");
filter.addAction("com.android.music.playstatechanged");
filter.addAction("com.android.music.playbackstatechanged");
filter.addAction("com.android.music.playbackcomplete");
filter.addAction("com.android.music.queuechanged");
filter.addAction("com.android.music.musicservicecommand");
a.registerReceiver(receiver = new AudioBroadcastReceiver(), filter); //a is Activity

这段代码确实有效-我查过了。接收器看起来是这样的:

代码语言:javascript
复制
class AudioBroadcastReceiver extends BroadcastReceiver {
    public void onReceive(Context context, Intent intent) {
        ...
    }
}

他们说,在注册BroadcastReceiver之前,需要动态地给予应用程序特殊的权限。但是我找不到怎么做--我应该用Manifest.permission.请求什么?为了这个案子。我只想当播放器改变音乐音轨时接收信号。这里面有什么危险?

EN

回答 1

Stack Overflow用户

发布于 2017-04-04 11:24:20

你依赖的是无记录、无支持的广播。一些播放器应用程序可能会使用这些。其他人可能不会。同一播放器的不同版本可能使用这些,也可能不使用这些。

不要假设任何给定的设备都有支持这些广播的播放器,或者用户选择的播放器将支持这些广播。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43194548

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档