如果调用onApplicationDisconnected,如何断开Android设备与chromecast的连接

时间:2015-01-29 15:27:37

标签: android chromecast

我有一个允许将内容流式传输到chromecast的应用程序。根据app逻辑,只有一个设备可以连接到chromecast

当我们连接到接收器时,我们正在使用:

Cast.CastOptions.Builder apiOptionsBuilder = Cast.CastOptions
                .builder(mSelectedDevice, mCastClientListener);
GoogleApiClient mApiClient= new GoogleApiClient.Builder(mContext)
            .addApi(Cast.API, apiOptionsBuilder.build())
            .addConnectionCallbacks(mConnectionCallbacks)
            .addOnConnectionFailedListener(mConnectionFailedListener)
            .build();
mApiClient.connect();

当chromecast成功连接时,我们启动接收器

Cast.CastApi.launchApplication(mApiClient, mChromeCastAppId, true)
      .setResultCallback(
            new ResultCallback<Cast.ApplicationConnectionResult>() {
                 @Override
                 public void nResult(Cast.ApplicationConnectionResult result) {
                        //do logic when successfully connected
                 }
            }
       });

如果其他发送方连接到设备,已经由第一个设备和播放流控制,它会重新启动接收方,并且第一个设备在onApplicationDisconnected回调中获得2005错误,但MediaRouteButton仍然具有类似于已连接到设备的状态。我找不到重置路线的方法。 如果我点击MediaRouteButton,我可以看到对话框,它允许我控制音量并断开与chromecast的连接。

这让用户感到困惑。如何重置MediaRouteButton?

1 个答案:

答案 0 :(得分:1)

呼叫:

mMediaRouter.selectRoute(mMediaRouter.getDefaultRoute())