[英]Obtaining a list of MediaBrowserServices currently registered results in only the bluetooth MediaBrowserService
我正在嘗試構建一個可以從 WearOS 開始音頻播放的應用程序。 據我所知,這需要手機上的應用程序來獲取可能播放的歌曲列表。 為此,我想使用 MediaBrowserService,就像這個例子一樣。
但是,當我嘗試重現 MediaBrowserServices 的列表時,我只得到“藍牙音頻”MediaBrowserService。 另一方面,示例應用程序運行良好並顯示所有應用程序。
這是我正在使用的代碼:
override fun onStart() {
super.onStart()
val mediaBrowserIntent = Intent(MediaBrowserServiceCompat.SERVICE_INTERFACE)
val packageManager = this.packageManager
val services = packageManager.queryIntentServices(mediaBrowserIntent, PackageManager.GET_RESOLVED_FILTER)
val tv: TextView = findViewById(R.id.helloworld)
val res = StringBuilder()
for(info in services) {
res.appendLine(info.serviceInfo.loadLabel(packageManager).toString())
}
tv.text = res.toString()
}
這是從這里改編的。
您知道可能導致問題的原因是什么嗎?
看起來您需要正確處理package visibility 。
嘗試使用正確的意圖過濾器簽名將<queries>
部分添加到您的清單文件中:
<queries>
<intent>
<action android:name="android.media.browse.MediaBrowserService" />
</intent>
</queries>
示例應用程序之所以有效,是因為它以 SDK 29 為目標。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.