我对谷歌演员sdk很新,我在演员开发者控制台上注册了一个带有样式媒体接收器的应用程序。我的想法是从Android应用程序发送图像到chromecast设备。 我已经尝试了一些示例并尝试编写自己的示例,以下是我用于发现设备的代码片段。但它似乎没有用。我也在清单中设置了正确的权限,但由于某种原因我无法在操作栏上显示强制转换按钮。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ActionBar actionBar = getSupportActionBar();
actionBar.setBackgroundDrawable(new ColorDrawable(
android.R.color.transparent));
mMediaRouter = MediaRouter.getInstance(getApplicationContext());
mMediaRouteSelector = new MediaRouteSelector.Builder()
//.addControlCategory(
//CastMediaControlIntent.DEFAULT_MEDIA_RECEIVER_APPLICATION_ID).build();
.addControlCategory(
CastMediaControlIntent.categoryForCast(getResources()
.getString(R.string.app_id))).build();
mMediaRouterCallback = new MyMediaRouterCallback();
}
@Override
protected void onResume() {
super.onResume();
// Start media router discovery
mMediaRouter.addCallback(mMediaRouteSelector, mMediaRouterCallback,
MediaRouter.CALLBACK_FLAG_REQUEST_DISCOVERY);
}
@Override
protected void onPause() {
if (isFinishing()) {
// End media router discovery
mMediaRouter.removeCallback(mMediaRouterCallback);
}
super.onPause();
}
@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);
// Set the MediaRouteActionProvider selector for device discovery.
mediaRouteActionProvider.setRouteSelector(mMediaRouteSelector);
return true;
}
答案 0 :(得分:1)
如果使用DEFAULT_MEDIA_RECEIVER_APPLICATION_ID
作为你的appId使得投射按钮可见但是使用你自己的appId并不是,那么这意味着你的演员设备没有正确注册你的应用程序。如果是这种情况,您需要确保在开发人员控制台中使用了正确的序列号,并且您有"发送序列号..."设置chromecast时选中复选框。完成所有这些操作后,重新启动chromecast以便它可以获取新配置。