我正在尝试让我的媒体路由选择器同时显示 MiraCast 和 Chromecast 设备。我有一个 Chromecast 接收器应用程序,并且还使用了 Android 中的 Presentation API,因此理想情况下,用户只需单击媒体路由器按钮并选择他们拥有的设备,甚至无需考虑它。我正在关注本指南(https://developer.android.com/guide/topics/media/mediarouter.html#selector)来实现这一点,在图片中它显示了路线选择器中可用的 Chromecast 和无线显示器。但是,添加控制类别后,我仍然只能看到 Chromecast。
这是相关的代码。
mMediaRouteSelector = new MediaRouteSelector.Builder()
.addControlCategory(MediaControlIntent.CATEGORY_LIVE_AUDIO)
.addControlCategory(MediaControlIntent.CATEGORY_LIVE_VIDEO)
.addControlCategory(MediaControlIntent.CATEGORY_REMOTE_PLAYBACK)
.addControlCategory(CastMediaControlIntent.categoryForCast(CAST_APP_ID))
.build();
...
mMediaRouter.addCallback(mMediaRouteSelector, mMediaRouterCallback,
MediaRouter.CALLBACK_FLAG_REQUEST_DISCOVERY);
我也尝试过更改回调标志,但没有看到任何变化。
编辑:
我最终为路由器按钮创建了一个自定义对话框工厂,并使用了一个单独的布局,其中包括一个将用户发送到无线显示设置的按钮。不完全是我正在寻找的解决方案,但似乎不支持我实际尝试做的事情。