簡體   English   中英

獲取當前注冊的 MediaBrowserServices 列表只在藍牙 MediaBrowserService 中得到結果

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM