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