java-Cast按钮未显示在Demo上

提问

我正在从https://github.com/googlecast/CastVideos-android运行演示.

它取决于此处的库https://github.com/googlecast/CastCompanionLibrary-android

该项目使用所有必需的库和必需的jar进行设置.

该项目可以编译并运行,除非chromecast按钮未显示在actionBar中.

如果我使用以下命令修改onCreate,则会显示该按钮:

mSelector = new MediaRouteSelector.Builder()
      .addControlCategory(MediaControlIntent.CATEGORY_LIVE_AUDIO)
      .addControlCategory(MediaControlIntent.CATEGORY_LIVE_VIDEO)
      .addControlCategory(MediaControlIntent.CATEGORY_REMOTE_PLAYBACK)
      .addControlCategory(CastMediaControlIntent.categoryForCast(getResources().getString(R.string.app_id))).build();

并使用以下命令修改onCreateOptionsMenu:

 @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        super.onCreateOptionsMenu(menu);
        getMenuInflater().inflate(R.menu.main, menu);

      //mediaRouteMenuItem = mCastManager.addMediaRouterButton(menu, R.id.media_route_menu_item);
      //Attach the MediaRouteSelector to the menu item

        //MenuItem 
        mediaRouteMenuItem = menu.findItem(R.id.media_route_menu_item);
        MediaRouteActionProvider mediaRouteActionProvider = (MediaRouteActionProvider)MenuItemCompat.getActionProvider(mediaRouteMenuItem);
        mediaRouteActionProvider.setRouteSelector(mSelector);
        return true;
    }

如果我只是将onCreateOptionsMenu保留为开箱即用,那么它将不起作用.

@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        super.onCreateOptionsMenu(menu);
        getMenuInflater().inflate(R.menu.main, menu);

        mediaRouteMenuItem = mCastManager.addMediaRouterButton(menu, R.id.media_route_menu_item);        
        return true;
    }

关于这是为什么的任何想法?

最佳答案

您的设备可能未列入应用白名单.您可能需要查看说明here.