如何在 mini control click 上为 cast sender app 中的不同内容启动不同的活动

How to launch different activities for different content in cast sender app on mini controll click

我正在为一个应用程序添加 google 投射支持,我只能定位一个 activity 在迷你控制器上启动并点击通知。我在 OptionsProvider 子类中配置它,比如

   @Override
    public CastOptions getCastOptions(Context appContext) {

        Log.d(TAG, "getCastOptions: ");

        NotificationOptions notificationOptions = new NotificationOptions.Builder()
                .setTargetActivityClassName(VideoPlayerActivity.class.getName())
                .build();

        CastMediaOptions mediaOptions = new CastMediaOptions.Builder()
                .setNotificationOptions(notificationOptions)
                .setExpandedControllerActivityClassName(VideoPlayerActivity.class.getName())
                .build();

        CastOptions castOptions = new CastOptions.Builder()
                .setReceiverApplicationId(appContext.getString(R.string.app_id))
                .setCastMediaOptions(mediaOptions)
                .build();
        return castOptions;
    }

我在播放视频的时候还可以,但是我在应用程序中也有音乐,而且它没有全屏控制器。因此,在 notification/mini 控制器上单击我想在播放视频时启动 VideoPlayerActivity,在播放音乐时启动 MusicActivity。

不知道怎么做,也找不到文档。我不确定这是否可能。

如何实现?

定义一个 activity,比如 ProxyActivity,作为您的目标 activity。然后在那个activity里面判断是音乐还是视频,然后启动对应的activity; ProxyActivity 只决定应该启动其他两个活动中的哪一个。

另一种方法是让您的目标 activity 能够适应媒体类型(即在一个 activity 中处理两种情况)。