我们的应用程序包含一个MediaBrowserService
,并使用白名单来限制谁可以查询服务。它通常用于允许Android Auto和Android Wear在我们的应用中查询音频内容。据我所知,这仍然是一个推荐的方法。例如,如下面的Google示例应用程序所示:MediaBrowserService sample app为什么包装“com.android.bluetooth”在三星设备上查询我们的MediaBrowserService?
我们的应用报告试图查询我们的MediaBrowserService
但不在白名单上的软件包名称。我们经常收到“com.android.bluetooth”试图拨打我们的服务并被拒绝的报告。
我对这些报告感到困惑。我们从未在我们自己的测试设备上看到过这种软件包的调用。我之前试图询问用户他们是否有可能显示音频信息的蓝牙设备已经遇到困惑......所以看起来也许Android本身正在进行这些呼叫?
有没有其他人遇到过这个?此白名单方法需要验证特定的签名证书。 com.android.bluetooth是否有一致的签名证书,可用于将此软件包添加到白名单中?
更新1:
在我们从用户收到的报告来看,这似乎是一个专用的Android三星6.0.1现象。它的第一份报告显示在2016年3月13日,并且整个夏天都有稳定的滴漏。
以下是报告此问题的模型的部分列表。他们都有Android 6.0.1。这可能与他们基于Tizen的Galaxy Gear手表有关吗?
- 银河注4(SM-N910R4)
- 银河注4(SAMSUNG-SM-N910A)
- 银河注5(SM-N920V)
- 银河S5(SM-G900V)
- 银河S5活动(SAMSUNG-SM-G870A)
- 银河S6(SM-G920R7)
- 银河S6(SAMSUNG-SM-G890A)
- 银河S7边缘(SM-G935V)
- 银河S7边缘(SAMSUNG-SM-G935A)
- 银河J7(SM-J700T1)
更新2:
我终于与复制的情况在银河S6边缘6.0.1。只需打开设备上的蓝牙即可。如果打开,甚至没有任何配对或连接,当我开始在我们的应用程序“com.android.bluetooth”(UID 1002)中播放音频时,我们的MediaBrowserService
上的onGetRoot
和onLoadChildren
也会打开。为什么!?如果我允许,设备上没有任何可见的变化。我想我可能会看到一些三星小工具从我们的应用程序中呈现媒体信息......但我不知道。
这个有什么进展?任何新事物? – Kenumir
不可以。我们用来记录我们MediaBrowserService的所有非白名单呼叫者,但这些三星设备发送的垃圾邮件太多,我们只是停止记录此信息。所以我“修复”它不再寻找它。 ¯\ _(ツ)_/ –
我想这可能与他们的基于Tizen的手表有关,但如果是这样的话,在手表未连接时反复调用MediaBrowerService似乎很奇怪。我无法使用Gear手表来测试这一理论。 –