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

How to disconnect android device from chromecast if onApplicationDisconnected was called

我有一个允许将内容流式传输到 chromecast 的应用程序。根据应用程序逻辑,只有一台设备可以连接到 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 连接成功后,我们启动 reciever

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?

致电:

mMediaRouter.selectRoute(mMediaRouter.getDefaultRoute())