我正在使用Android的MediaRouter / Presentation ( support.v7版本)。
到目前为止一切都很好。唯一不能做到的是:
当我退出我的活动(e.g.teardown &删除回调)时,一切仍然正常。
但是,在启动此活动时(之前的中介活动已强制完成,因此可以肯定地调用了=>,以便那里的回调也消失了,正如我的调试消息中所示),在稍后的某个时间点,回调将被创建和添加以及所有内容。只是,没有更多的onRouteAdded调用,只有onProviderChanged (使用默认的提供程序,因此无用)。
它总是这样工作(与wifi显示miracast,模拟二次显示,chromecast二次显示..)。这些例子中有没有没有的决议?
你想看看代码吗?哪一种特殊情况?(不能全部发出去)
到目前为止,我什么也找不到,谢谢你的帮助,提前。
发布于 2014-07-29 09:49:31
使用getSelectedRoute()而不是RouteInfo (由回调提供)为我完成了这项工作。
MediaRouter.RouteInfo selectedRoute = getHelper().getMediaRouter().getSelectedRoute();
if(provider != null && getCurrentRoute() != null && getCurrentRoute().equals(selectedRoute)){
Log.d(TAG, "only provider changes, dont do anything");
return false;
}
if (selectedRoute != null) {
setCurrentRoute(selectedRoute);
}
return updateContents();这是非常奇怪的(因为其余的代码看起来与提供的google开发者示例完全一样),但它是有效的。
发布于 2014-07-24 17:06:45
如果您更改Google示例应用程序以支持MediaRouter.Callback:https://github.com/googlecast/CastPresentation-android
那么我每次都会接到onRouteAdded的电话。
发布于 2015-03-31 14:40:01
我知道这个问题一年多前就已经解决了,但可能不是一个完美的解决方案。也许它会对其他人有用。
我有同样的问题,完全相同的症状(没有更多的onRouteAdded调用)。在我的情况下,这是由于未正确地实现MediaRouter的失活所致:要正确地禁用它,您不仅应该删除所有回调,还应该选择默认的MediaRoute。
if (!mMediaRouter.getDefaultRoute().isSelected()) {
mMediaRouter.getDefaultRoute().select();
}https://stackoverflow.com/questions/24936288
复制相似问题