Android中未显示Google Cast按钮

Android中未显示Google Cast按钮,android,chromecast,google-cast,Android,Chromecast,Google Cast,在我的项目中尝试使用Google的cast SDK v3时,即使我身边有活动的cast接收器,cast按钮也无法显示 我已将Google cast按钮添加到我的项目布局中,如下所示: <android.support.v7.app.MediaRouteButton android:id="@+id/media_route_button" android:layout_width="wrap_content" android:layout_he

在我的项目中尝试使用Google的cast SDK v3时,即使我身边有活动的cast接收器,cast按钮也无法显示

我已将Google cast按钮添加到我的项目布局中,如下所示:

<android.support.v7.app.MediaRouteButton
        android:id="@+id/media_route_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:mediaRouteTypes="user"
        android:visibility="gone" />
我还创建了
CastOptionsProvider
,并在我的
AndroidManifest
文件中指向它

根据Google cast文档:

在v3中,发现过程由 当应用程序出现在前台并转到 背景资料。MediaRouteSelector和MediaRouter.Callback 不应使用

你知道为什么GoogleCast按钮不会自动出现,因为按钮应该处理自己的状态吗

编辑

我目前的解决方案/解决方法是:

castContext.addCastStateListener(
    newState -> updateCastButtonVisibility(button, newState)
);

private static void updateCastButtonVisibility(View button, int state) {
 if (state == CastState.NO_DEVICES_AVAILABLE) {
        button.setVisibility(View.GONE);
    } else {
        button.setVisibility(View.VISIBLE);
    }
}

一种可能是您的应用程序id还不存在。 当应用程序id无效时,GoogleCast按钮不会显示。 您可以测试默认id:

CastMediaControlIntent.DEFAULT_MEDIA_RECEIVER_APPLICATION_ID

显然这是cast SDK中的一个bug

我已经为它开了一张罚单,Google cast团队设法复制了它并接受了这个bug


这里有一个指向的链接,您可以跟踪它

您是否尝试过使用
android:visibility=“visible”
?@DanielZolnai该按钮应该管理它自己的可见性。从gone开始,如果有可用的接收器应用程序,它应该是可见的。CastVideos示例应用程序是否发现您的接收器?
CastMediaControlIntent.DEFAULT_MEDIA_RECEIVER_APPLICATION_ID