MediaRouteButton未显示RemoteDisplay应用程序ID

时间:2017-11-22 10:15:52

标签: android chromecast

我正在为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,但它仍然没有工作

谢谢!

1 个答案:

答案 0 :(得分:0)

几周后,我再次尝试了我的代码,一切正常。我不知道发生了什么,但我发现这个问题有人开了:

https://issuetracker.google.com/issues/69470206

可能是相关的。