似乎Google official documentation on accessing a Chromecast from Android主要围绕一个ActionBar按钮,它似乎自动处理选择器对话框并将用户选择返回到回调。
我的活动中有一个自定义Button
(视图),其中包含handleCastButton()
方法。 在使用自定义用户界面时,是否有一个如何调出标准选择器的示例?
修改:看起来我应该可以对库存MediaRouteDialogFactory
执行某些操作,但我找不到任何详细信息。
答案 0 :(得分:1)
如果您没有使用MediaRouteActionProvider将强制转换按钮添加到ActionBar,则应该使用具有相同行为的MediaRouteButton(打开标准选择器对话框,自动更改状态关于是否有Chromecast可用,等等,但可以放在正常Button
的任何地方。
自定义样式可以通过复制default images drawables(以及png
,drawable-hdpi
和drawable-mdpi
中关联的drawable-xhdpi
)并对其进行样式设置来完成只提供相同名称的重写资源。
答案 1 :(得分:1)
分析MediaRouteButton source code后,这似乎有效:
public void handleCastButton() {
final FragmentManager fm = fragmentActivity.getSupportFragmentManager();
MediaRouteChooserDialogFragment f = MediaRouteDialogFactory.getDefault().onCreateChooserDialogFragment();
f.setRouteSelector(mediaRouteSelector);
f.show(fm, "android.support.v7.mediarouter:MediaRouteChooserDialogFragment");
}
那就是它!确保您的基本活动为FragmentActivity
,所有导入均来自android.support.v7.*
。对话框片段将使用您与所述选择器关联的Callback
。
当您已经连接并希望调整音量或断开连接时,还有一个MediaRouteControllerDialogFragment
。
答案 2 :(得分:-2)
看一下这个示例project,您应该可以重用其中的一些。您基本上需要注册以侦听路线,因为它们被删除并保留可用的路径列表,并在用户点击按钮时将其呈现给用户。当用户选择路由时,您需要处理连接,并在媒体路由器实例中将路由设置为选定路由。