所以我修改了Mediarouter的源码,依赖于ActionBarSherlock而不是AppCompat。但是,现在不调用MediaRouteAdapter onDeviceAvailable(...)
的回调。MediaRouter:使用ActionBarSherlock时检测Chromecast设备?
关于如何使这项工作的任何想法?
我不想让投影按钮始终可见。相反,我想使用onDeviceAvailable(..)
以使其在设备可用时才可见。
所以我修改了Mediarouter的源码,依赖于ActionBarSherlock而不是AppCompat。但是,现在不调用MediaRouteAdapter onDeviceAvailable(...)
的回调。MediaRouter:使用ActionBarSherlock时检测Chromecast设备?
关于如何使这项工作的任何想法?
我不想让投影按钮始终可见。相反,我想使用onDeviceAvailable(..)
以使其在设备可用时才可见。
我发现如何解决这个问题。
如果您使用appcompat,则只有在网络中有Chromecast设备时才会显示投射图标,具体取决于您的onDeviceAvailable(...)
的实施情况。
但是,如果您使用ABS,则在网络上可用chromecast设备时,不会调用onDeviceAvailable(...)
方法。因此,为了看到投射图标,我们必须将其设置为始终可见。
所以问题是,投影图标总是可见的(当您将可见性设置为可见或将其添加到操作栏时)。
但是: MediaRouter具有不同的视图状态。一个用于投射设备可用,另一个用于没有可用投影设备。
Mediarouter库由可绘制的png组成,这些可绘制的png是设备可用或不可用时的图标。
只需将空白资源或适合该应用的任何内容替换为“无路由可用”即可。
当设备可用时,将显示正确的投射图标,当不可用时,您的自定义资源将显示(如果资源为空白视图,则为空白)。
下面是关于如何获得mediarouter源代码的全部细节,以及如何解决这一问题:http://www.droidorbit.com/2013/10/mediarouter-and-actionbarsherlock.html
我遵循了上面建议的链接。但是我得到了错误: MediaRouterJellybean,MediaRouterJellybeanMr1无法解析为SystemMediaRouteProvider.java文件中的类型。 而R.attr.isLightTheme无法解析或不是MediaRouterThemeHelper.java文件中的字段。 当前我评论这些代码的错误免费,然后集成铸造示例与ABS和在ActionBar中显示投射图标。 但我得到了错误:java.lang.ClassCastException:android.support.v7.app.MediaRouteActionProvider无法转换为com.actionbarsherlock.view.ActionProvider。 请帮我解决它。谢谢 –
你可以给你修改的MediaRouter源代码吗?我的电子邮件是[email protected]。在此先感谢 –
发送给您的电子邮件Huy Dong Tu – Prem
你从哪儿拉来源为Mediarouter? – Steve
https://android.googlesource.com/ – Prem
谢谢。你能分享你采取的步骤以达到你现在的位置吗?我有点迷失在哪里开始,而且你似乎是唯一一个能让这两人打得好的运气。 – Steve