使用 RemoteDisplayLocalService 时如何完全断开与 Cast 设备的连接?
How to fully disconnect from Cast device when using RemoteDisplayLocalService?
我正在使用 Cast SDK v2 和 RemoteDisplayLocalService
来投射本地内容。在MediaRouter.Callback
中的onRouteUnselected
函数中,我用CastRemoteDisplayLocalService.stopService()
停止了服务。接收器应用程序停止;然而,系统下拉仍然显示应用程序已连接到接收器,如下所示:
我认为这是因为 CastRemoteDisplayLocalService
的 GoogleApiClient
仍然连接到 Google Play 服务。是否有一种编程方式可以完全断开发送者应用程序的连接?
原来这个问题与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);
我正在使用 Cast SDK v2 和 RemoteDisplayLocalService
来投射本地内容。在MediaRouter.Callback
中的onRouteUnselected
函数中,我用CastRemoteDisplayLocalService.stopService()
停止了服务。接收器应用程序停止;然而,系统下拉仍然显示应用程序已连接到接收器,如下所示:
我认为这是因为 CastRemoteDisplayLocalService
的 GoogleApiClient
仍然连接到 Google Play 服务。是否有一种编程方式可以完全断开发送者应用程序的连接?
原来这个问题与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);