android MediaButton的优先级问题

背景:我用的手机是MIUI V5系统,4.1.2安卓版本,发现从4.0.3升级到4.1.2后,我的app和系统自带的播放器在音乐控制上冲突,两个app会同时相应 MEDIA_BUTTON 消息

MENIFEST.XML中定义了一个receiver,用于接受 MEDIA_BUTTON消息,但是和系统的播放器冲突了,系统自带的播放器总能先于我的app收到 MEDIA_BUTTON 消息
        <receiver android:name=".MusicIntentReceiver" >
            <intent-filter >
                <act ion android:name="android.intent.act ion.MEDIA_BUTTON" />
            </intent-filter>
        </receiver>
用autostart这个app查看了系统播放器的这个receiver的优先级是1000,而我的默认为0,于是在xml中 加个优先级2000,大于系统的那个1000:
        <receiver android:name=".MusicIntentReceiver" >
            <intent-filter android:priority="2000" >
                <act ion android:name="android.intent.act ion.MEDIA_BUTTON" />
            </intent-filter>
        </receiver>

这下以为就可以不冲突了,的确我的app先于系统的播放器获得了 MEDIA_BUTTON 消息,但是系统播放器随后仍然能接收到这个消息并抢占AudioFocus,结果我的app仍然无法工作。于是想着我接收到消息后,能否取消这个消息的向后传播,据我所知 android.intent.action.MEDIA_BUTTON这个广播不是 OrderedBroadcast,应该不会响应 abortBroadcast();这个函数,但是我加上之后奇迹般地生效了,难道 android.intent.action.MEDIA_BUTTON变了,不知是否是MIUI团队改过的 ,目前不清楚,反正安卓4.0.3版本的MIUI上我的app工作还是正常的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值