我正在为android开发chromecast应用程序,使用sdk v2实现RemoteDisplay。
我的MediaRouteButton
nevers在我的菜单上显示使用我在演员开发者控制台上为RemoteDisplay
应用程序创建的应用程序ID进行发现,但如果我使用CastMediaControlIntent.DEFAULT_MEDIA_RECEIVER_APPLICATION_ID
作为ID,则会显示该按钮。< / p>
这是 我的活动 :
public class MainActivity extends AppCompatActivity {
public final static String ID = "99FB28D7";
MediaRouter mediaRouter;
MediaRouteSelector mediaRouteSelector;
private CastDevice selectedDevice;
private MyMediaRouterCallback routerCallback = new MyMediaRouterCallback();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
this.mediaRouter = MediaRouter.getInstance(getApplicationContext());
this.mediaRouteSelector = new MediaRouteSelector.Builder()
.addControlCategory(CastMediaControlIntent.categoryForCast(ID)).build();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
getMenuInflater().inflate(R.menu.main, menu);
MenuItem mediaRouteMenuItem = menu.findItem(R.id.media_route_menu_item);
MediaRouteActionProvider mediaRouteActionProvider =
(MediaRouteActionProvider) MenuItemCompat.getActionProvider(mediaRouteMenuItem);
mediaRouteActionProvider.setRouteSelector(this.mediaRouteSelector);
return true;
}
@Override
protected void onStart() {
super.onStart();
this.mediaRouter.addCallback(this.mediaRouteSelector, routerCallback, MediaRouter.CALLBACK_FLAG_REQUEST_DISCOVERY);
}
@Override
protected void onStop() {
this.mediaRouter.removeCallback(this.routerCallback);
super.onStop();
}
private class MyMediaRouterCallback extends MediaRouter.Callback {
@Override
public void onRouteSelected(MediaRouter router, MediaRouter.RouteInfo info) {
selectedDevice = CastDevice.getFromBundle(info.getExtras());
}
@Override
public void onRouteUnselected(MediaRouter router, MediaRouter.RouteInfo info) {
selectedDevice = null;
}
}
}
我的 main.xml 菜单:
<?xml version="1.0" encoding="utf-8"?>
<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>
我正在测试运行GooglePlayServices 11.7.
的 Android Marshmallow 我还尝试将GooglePlayServices
降级为10.2
,但它仍然没有工作
谢谢!
答案 0 :(得分:0)
几周后,我再次尝试了我的代码,一切正常。我不知道发生了什么,但我发现这个问题有人开了:
https://issuetracker.google.com/issues/69470206。
可能是相关的。