Google Android 中未显示投射按钮
Google Cast button not showing in Android
尝试在我的项目中使用 Google 的投射 SDK v3,即使我附近有投射接收器,投射按钮也没有出现
我已将 Google 投射按钮添加到我的项目布局中,如下所示:
<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" />
上面的按钮不是菜单按钮,所以我在 onCreate 中设置了按钮,如下所示:
CastButtonFactory.setUpMediaRouteButton(getApplicationContext(), mediaRouteButton);
我还创建了 CastOptionsProvider
并在我的 AndroidManifest
文件中指向它
根据 Google 演员文档:
In v3, the discovery process is started and stopped automatically by
the framework when the app comes to the foreground and goes to the
background, respectively. MediaRouteSelector and MediaRouter.Callback
should not be used.
知道为什么 google 投射按钮没有自动出现,因为该按钮应该处理他自己的状态吗?
编辑
我现在的solution/workaround是:
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还不存在。
GoogleCast 按钮未显示是因为应用程序 ID 无效。
你可以测试默认的id:
CastMediaControlIntent.DEFAULT_MEDIA_RECEIVER_APPLICATION_ID
很明显这是 cast SDK 中的错误。
我已经为它开票,Google 演员团队设法重现并接受了这个错误。
这是 reported bug 的 link 以便您可以跟踪它
尝试在我的项目中使用 Google 的投射 SDK v3,即使我附近有投射接收器,投射按钮也没有出现
我已将 Google 投射按钮添加到我的项目布局中,如下所示:
<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" />
上面的按钮不是菜单按钮,所以我在 onCreate 中设置了按钮,如下所示:
CastButtonFactory.setUpMediaRouteButton(getApplicationContext(), mediaRouteButton);
我还创建了 CastOptionsProvider
并在我的 AndroidManifest
文件中指向它
根据 Google 演员文档:
In v3, the discovery process is started and stopped automatically by the framework when the app comes to the foreground and goes to the background, respectively. MediaRouteSelector and MediaRouter.Callback should not be used.
知道为什么 google 投射按钮没有自动出现,因为该按钮应该处理他自己的状态吗?
编辑
我现在的solution/workaround是:
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还不存在。 GoogleCast 按钮未显示是因为应用程序 ID 无效。 你可以测试默认的id:
CastMediaControlIntent.DEFAULT_MEDIA_RECEIVER_APPLICATION_ID
很明显这是 cast SDK 中的错误。
我已经为它开票,Google 演员团队设法重现并接受了这个错误。
这是 reported bug 的 link 以便您可以跟踪它