我們的應用程序包含一個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手錶來測試這一理論。 –