使用RemoteDisplayLocalService时如何完全断开与Cast设备的连接?

时间:2016-09-29 18:34:48

标签: android chromecast google-cast android-cast-api

我使用Cast SDK v2和RemoteDisplayLocalService来投射本地内容。在onRouteUnselected中的MediaRouter.Callback函数中,我使用CastRemoteDisplayLocalService.stopService()停止服务。接收器app停止;然而,系统下拉仍然表示应用程序已连接到接收器,如下所示:

App is still connected

我认为这是因为CastRemoteDisplayLocalService的{​​{1}}仍然与Google Play服务相关联。是否有一种以编程方式完全断开发件人应用程序的连接?

1 个答案:

答案 0 :(得分:0)

原来这个问题与RemoteDisplay API无关。这实际上是由于我使用MediaProjection API来投射用户的屏幕。电话

mMediaProjection = mMediaProjectionManager.getMediaProjection(resultCode, data); 

是打开下拉菜单中的Cast图标的原因。要将其关闭,请致电

mMediaProjection.stop();

请注意,用户可以随时从下拉菜单(不会结束远程显示会话)停止媒体投影,因此请将以下回调添加到MediaProjection:

mMediaProjection.registerCallback(new MediaProjection.Callback() {
    @Override
    public void onStop() {
        // Stop casting when user stops media projection
        mMediaRouter.selectRoute(mMediaRouter.getDefaultRoute());
    }
}, null);