使用CastCompanionLibrary向ActionBar添加强制转换按钮

Sco*_*ott 6 android google-cast

我正在尝试使用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;
}
Run Code Online (Sandbox Code Playgroud)

我将此作为我的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>
Run Code Online (Sandbox Code Playgroud)

但是,ActionBar中没有任何内容.不会抛出任何错误,根本没有任何错误可见.如果我添加一个不同的菜单项只是为了查看我的菜单中的所有内容是否设置正确,该项目显示正常 - 这只是这个未显示的投射操作菜单项.

我已经尝试将"app"前缀更改为"android",但后来我NullPointerException在图书馆的某处深处,我尝试给菜单项一个不同的,可见的图标.什么都没有帮助.

在AndroidStudio中,菜单预览显示一个标题为"Play on ..."的菜单项,因此看起来这应该可行.

我究竟做错了什么?

Zeu*_*eus 2

您必须将 chrome-cast 注册为测试设备,以便能够从 Android 检测 chromecast 设备。

查看完整的 SDK指南
检查开发者控制台注册。您必须在此处的控制台中注册您的 chromecast 设备,否则无法检测到它

更新:如果没有任何效果,您可以尝试在 chromecast 开发控制台中发布您的应用程序,作为最后的手段。

正如一位 chromecast 开发人员所提到的,尝试http://<chromecast-ip>:9222从浏览器访问并查看是否能够看到任何内容。

  • 请不要给出“在 chromecast 开发控制台中发布您的应用程序”的错误建议,完全没有必要发布您的应用程序才能在您的开发设备中看到它;事实上,当您进行开发时,我们的建议是不要发布它。如果您在不发布应用程序的情况下无法使其工作,则有一个问题需要解决;“发布”只会掩盖问题。 (2认同)