【发布时间】:2014-03-18 04:37:11
【问题描述】:
我正在尝试使用 CastCompanionLibrary 的辅助方法将投射图标添加到 ActionBar:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
getMenuInflater().inflate(R.menu.main, menu);
mDataCastManager.addMediaRouterButton(menu, R.id.media_route_menu_item); // This one
return true;
}
我将其作为我的 menu.xml,由随附库中包含的 PDF 指定:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/media_route_menu_item"
android:title="@string/media_route_menu_title"
app:actionProviderClass="android.support.v7.app.MediaRouteActionProvider"
app:showAsAction="always"/>
</menu>
但是,ActionBar 中没有显示任何内容。没有错误被抛出,没有任何东西是可见的。如果我添加一个不同的菜单项只是为了查看我的菜单中的所有内容是否设置正确,则该项目显示正常 - 只是这个演员操作菜单项没有显示。
我尝试将“app”前缀更改为“android”,但随后我在库深处的某处获得了NullPointerException,并且我尝试为菜单项提供不同的可见图标。没有什么帮助。
在 AndroidStudio 中,菜单预览会显示一个标题为“Play on...”的菜单项,因此看起来应该可以。
我做错了什么?
【问题讨论】:
-
有没有可用的路线?我还没有使用过
MediaRouteActionProvider(它在我的短名单上......),所以我不知道它的行为。但它可能只有在检测到路线时才会显示,并且一直消失到那个时候。 -
出现了同样的问题。我已经按照手册完成了所有操作,但 Cast 菜单项从未出现。即使在最简单的应用程序中。但是一切都在 extras\google\google_play_services\samples\cast\democastplayer 示例中有效。没有运气找出原因?
-
我终于解决了我的问题。罪魁祸首是我的应用程序 ID。出于某种原因,我的 chromecast 拒绝了它。我能够使用 CastMediaControlIntent.DEFAULT_MEDIA_RECEIVER_APPLICATION_ID 显示 Cast 图标。显然,这是错误的,但我的目标是概念验证。
标签: android google-cast