【发布时间】:2016-09-12 15:43:25
【问题描述】:
我们的应用程序包含一个MediaBrowserService,并使用白名单来限制谁可以查询该服务。它通常用于允许 Android Auto 和 Android Wear 向我们的应用查询音频内容。据我所知,这仍然是推荐的方法。例如,如本 Google 示例应用所示:MediaBrowserService sample app
我们的应用会报告尝试查询我们的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)
- Galaxy Note 4 (SAMSUNG-SM-N910A)
- 银河注 5 (SM-N920V)
- 银河 S5 (SM-G900V)
- Galaxy S5 Active (SAMSUNG-SM-G870A)
- 银河 S6 (SM-G920R7)
- 银河 S6 (SAMSUNG-SM-G890A)
- Galaxy S7 Edge (SM-G935V)
- Galaxy S7 Edge (SAMSUNG-SM-G935A)
- 银河 J7 (SM-J700T1)
更新 2:
我终于在带有 6.0.1 的 Galaxy S6 Edge 上重现了这种情况。只需打开设备上的蓝牙即可。如果打开,甚至没有配对或连接,当我开始在我们的应用程序“com.android.bluetooth”(UID 1002)中播放音频时,在我们的MediaBrowserService 上调用onGetRoot 和onLoadChildren。为什么!?如果我允许,设备上没有任何可见的变化。我想我可能会看到一些三星小部件显示我们应用程序中的媒体信息......但我没有。
【问题讨论】:
-
这方面有什么进展吗?有什么新东西吗?
-
没有。我们曾经记录 MediaBrowserService 的所有非白名单呼叫者,但这些三星设备向它发送了大量垃圾邮件,以至于我们只是停止记录这些信息。所以我不再寻找它来“修复”它。 ¯_(ツ)_/¯
-
我想这可能与他们基于 Tizen 的手表有关,但如果是这样,当手表未连接时重复调用 MediaBrowerService 似乎很奇怪。我无法使用 Gear 手表来测试这个理论。
标签: android wear-os samsung-mobile android-auto