Google 投射图标不显示
Google Cast icon doesn't show
我正在尝试将 Google Cast 集成到我的应用程序中,但我的 Toolbar
上没有显示 Cast 图标。
这是我试过的步骤。
Manifest.xml
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<uses-permission android:name="android.permission.INTERNET" />
MainActivity.java
private MediaRouter mMediaRouter;
private MediaRouteSelector mMediaRouteSelector;
private MediaRouter.Callback mMediaRouterCallback;
onCreate()
mMediaRouter = MediaRouter.getInstance( getApplicationContext() );
mMediaRouteSelector = new MediaRouteSelector.Builder()
.addControlCategory(
CastMediaControlIntent.categoryForCast("MYAPPID"))
.build();
mMediaRouterCallback = new MediaRouterCallback();
onResume()
mMediaRouter.addCallback( mMediaRouteSelector, mMediaRouterCallback, MediaRouter.CALLBACK_FLAG_PERFORM_ACTIVE_SCAN );
onCreateOptionsMenu()
MenuItem mediaRouteMenuItem = menu.findItem( R.id.media_route_menu_item );
MediaRouteActionProvider mediaRouteActionProvider = (MediaRouteActionProvider) MenuItemCompat.getActionProvider( mediaRouteMenuItem );
mediaRouteActionProvider.setRouteSelector( mMediaRouteSelector );
这个回调 class:
class MediaRouterCallback extends MediaRouter.Callback {
@Override
public void onRouteSelected(MediaRouter router, MediaRouter.RouteInfo info) {
}
@Override
public void onRouteUnselected( MediaRouter router, MediaRouter.RouteInfo info ) {
}
}
Menu.xml
<item android:id="@+id/media_route_menu_item"
android:title="Chromecast"
app:actionProviderClass="android.support.v7.app.MediaRouteActionProvider"
app:showAsAction="always"
/>
我也试过使用默认接收器。
我听说你必须有一个 Google 投射设备才能看到图标,有没有办法在没有设备的情况下测试应用程序?
是的,您没有看错,如果 ChromeCast
设备与您的设备位于同一网络中,您将看不到图标,
你可以找LeapCast
here,但是repo说不再支持了,你也可以找AllCast看看有没有符合您的需求
我正在尝试将 Google Cast 集成到我的应用程序中,但我的 Toolbar
上没有显示 Cast 图标。
这是我试过的步骤。
Manifest.xml
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<uses-permission android:name="android.permission.INTERNET" />
MainActivity.java
private MediaRouter mMediaRouter;
private MediaRouteSelector mMediaRouteSelector;
private MediaRouter.Callback mMediaRouterCallback;
onCreate()
mMediaRouter = MediaRouter.getInstance( getApplicationContext() );
mMediaRouteSelector = new MediaRouteSelector.Builder()
.addControlCategory(
CastMediaControlIntent.categoryForCast("MYAPPID"))
.build();
mMediaRouterCallback = new MediaRouterCallback();
onResume()
mMediaRouter.addCallback( mMediaRouteSelector, mMediaRouterCallback, MediaRouter.CALLBACK_FLAG_PERFORM_ACTIVE_SCAN );
onCreateOptionsMenu()
MenuItem mediaRouteMenuItem = menu.findItem( R.id.media_route_menu_item );
MediaRouteActionProvider mediaRouteActionProvider = (MediaRouteActionProvider) MenuItemCompat.getActionProvider( mediaRouteMenuItem );
mediaRouteActionProvider.setRouteSelector( mMediaRouteSelector );
这个回调 class:
class MediaRouterCallback extends MediaRouter.Callback {
@Override
public void onRouteSelected(MediaRouter router, MediaRouter.RouteInfo info) {
}
@Override
public void onRouteUnselected( MediaRouter router, MediaRouter.RouteInfo info ) {
}
}
Menu.xml
<item android:id="@+id/media_route_menu_item"
android:title="Chromecast"
app:actionProviderClass="android.support.v7.app.MediaRouteActionProvider"
app:showAsAction="always"
/>
我也试过使用默认接收器。
我听说你必须有一个 Google 投射设备才能看到图标,有没有办法在没有设备的情况下测试应用程序?
是的,您没有看错,如果 ChromeCast
设备与您的设备位于同一网络中,您将看不到图标,
你可以找LeapCast
here,但是repo说不再支持了,你也可以找AllCast看看有没有符合您的需求