我有一个应用程序使用ACTION_MEDIA_BUTTON意图与BroadcastReceiver来控制音乐播放器。用户按下外部硬件上的按钮,并控制应用内音乐播放器。用户也可以按住按钮并更改音量。Android - 其他应用程序窃取我的意图接收器?
我最近下载了另一个使用耳机按钮的应用程序,它接管了我的应用程序中的媒体按钮意图!所以,当这个其他应用程序打开,我按下按钮,另一个应用程序将开始运行,但我的应用程序会认为按钮仍然按下,所以它会循环音量。
总之,
- 我的应用程序是开放的,应该的媒体按钮意图
- 其他应用程序被打开唯一的听众,也希望成为的媒体按钮意图
- 按钮唯一的听众得到按下两个应用程序打开,控制去其他应用程序
- 我的应用程序认为按钮被按下,因为它失去了控制,因为按钮按下了模式(我认为)。然后它启动我不想启动的函数,因为它认为用户按下了按钮。
有没有什么办法可以确保我的应用程序打开时它是这个媒体按钮意图的唯一接收者?我能否至少检查一下另一个应用是否已经接管了,这样我可以防止意外的行为?
谢谢你的帮助,我从来没有应用程序不能很好地玩!
...直到另一个自定义应用程序获得安装优先级为相同的广播20000 :) –
那么,这是一场军备竞赛,真实:)。意图练习的黑暗面。 – Femi