Как запустить разные действия для разного контента в приложении Cast Sender на мини-клике

Я добавляю поддержку Google Cast в приложение и могу настроить только одно действие для запуска на мини-контроллере и щелчке уведомлений. Я настраиваю это в подклассе 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;
    }

Это нормально, когда я играю видео, но у меня также есть музыка в приложении, и у него нет полноэкранного контроллера. Поэтому при нажатии уведомления / мини-контроллера я хочу запустить VideoPlayerActivity, если идет видео, и MusicActivity, когда идет воспроизведение музыки.

Не могу понять, как это сделать, и не могу найти это в документации. Я не уверен, если это возможно.

Как мне этого добиться?

1 ответ

Решение

Определите одно действие, скажем ProxyActivity, как целевое действие. Затем в этом упражнении решите, является ли это музыка или видео, и запустите соответствующее задание; ProxyActivity не делает ничего, кроме как решить, какое из двух других действий следует запустить.

Альтернативой является то, чтобы ваша целевая деятельность могла адаптироваться к типу медиа (т.е. обрабатывать оба случая в одном упражнении).

Другие вопросы по тегам