如何启动"连接设备"使用自定义投射按钮时的对话框?

时间:2014-06-21 03:49:17

标签: android chromecast

似乎Google official documentation on accessing a Chromecast from Android主要围绕一个ActionBar按钮,它似乎自动处理选择器对话框并将用户选择返回到回调。

我的活动中有一个自定义Button(视图),其中包含handleCastButton()方法。 在使用自定义用户界面时,是否有一个如何调出标准选择器的示例?

修改:看起来我应该可以对库存MediaRouteDialogFactory执行某些操作,但我找不到任何详细信息。

3 个答案:

答案 0 :(得分:1)

如果您没有使用MediaRouteActionProvider将强制转换按钮添加到ActionBar,则应该使用具有相同行为的MediaRouteButton(打开标准选择器对话框,自动更改状态关于是否有Chromecast可用,等等,但可以放在正常Button的任何地方。

自定义样式可以通过复制default images drawables(以及pngdrawable-hdpidrawable-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,您应该可以重用其中的一些。您基本上需要注册以侦听路线,因为它们被删除并保留可用的路径列表,并在用户点击按钮时将其呈现给用户。当用户选择路由时,您需要处理连接,并在媒体路由器实例中将路由设置为选定路由。