#java #android #chromecast
#java #Android #chromecast
Вопрос:
Возможно ли изменить NotificationOptions
время выполнения?
Приложение, над которым я работаю, требует различных действий, основанных на этих функциях:
- Для видео: ПЕРЕМОТКА НАЗАД, ПЕРЕКЛЮЧЕНИЕ воспроизведения НАЗАД, ПЕРЕМОТКА ВПЕРЕД
- Для аудио: ПЕРЕКЛЮЧЕНИЕ воспроизведения
Кроме того, возможно ли инициировать уведомление, когда приложение находится на переднем плане?
В документации Cast упоминается «Уведомление будет отображаться только тогда, когда приложение работает в фоновом режиме».
Я потратил достаточно времени на просмотр документации CastSDK, но не нашел никакого решения. Может ли кто-нибудь, пожалуйста, помочь мне в этом?
Ответ №1:
1. Возможно ли изменить NotificationOptions
время выполнения?
- Я не вижу способа напрямую изменить
NotificationOptions
время выполнения, но это помогло бы, если бы вы инициализировали контекст приведения. Как упомянуто в документации
Ваше приложение должно реализовать
OptionsProvider
интерфейс для предоставления параметров, необходимых для инициализации синглтона CastContext. OptionsProvider предоставляет экземпляр CastOptions, который содержит параметры, влияющие на поведение платформы.
После инициализации вы можете добавить расширенный контроллер, в котором вы можете объявить свою новую активность, затем отредактировать CastOptionsProvider
и изменить NotificationOptions
и CastMediaOptions
, чтобы установить целевую активность для вашей новой активности:
public CastOptions getCastOptions(Context context) {
NotificationOptions notificationOptions = new NotificationOptions.Builder()
.setTargetActivityClassName(ExpandedControlsActivity.class.getName())
.build();
CastMediaOptions mediaOptions = new CastMediaOptions.Builder()
.setNotificationOptions(notificationOptions)
.setExpandedControllerActivityClassName(ExpandedControlsActivity.class.getName())
.build();
return new CastOptions.Builder()
.setReceiverApplicationId(context.getString(R.string.app_id))
.setCastMediaOptions(mediaOptions)
.build();
}
Пожалуйста, ознакомьтесь с приведенной документацией для других действий, которые вы можете выполнить после инициализации контекста приведения, таких как настройка обнаружения устройства, а также дополнительные сведения о том, как работает управление сеансами.
2. Возможно ли инициировать уведомление, когда приложение находится на переднем плане?
- Уведомление и экран блокировки в Cast SDK V3,
SDK предоставляет
NotificationsOptions.Builder
, чтобы помочь вам встроить элементы управления мультимедиа для экрана уведомлений и блокировки в приложение sender. Элементы управления уведомлением и экраном блокировки могут быть включены с помощью CastOptions при инициализации CastContext.
Кроме того, для большей ясности в элементах управления мультимедиа для уведомлений и экрана блокировки было указано, что
MediaNotificationService
выполняется в фоновом режиме, когда отправитель выполняет кастинг, но не имеет фокуса, и отображает уведомление с миниатюрой изображения и информацией о текущем элементе кастинга, кнопках воспроизведения / паузы и кнопке остановки.
Предупреждение: если вы создаете приложение v3 или переходите на v3, вы должны использовать CastContext
, а не GoogleApiClient для доступа к Cast API.
Надеюсь, это поможет!
Комментарии:
1. Спасибо, Тейам, я реализовал все компоненты фреймворка, точно упомянутые в документации, и все работает нормально. Единственная проблема, с которой я сталкиваюсь, заключается в том, чтобы иметь разные действия уведомления на основе функций. Если я прав из ваших комментариев, похоже, что у нас нет никакого способа изменить
2. Параметры уведомления после инициализации CastContext.
Ответ №2:
Для выполнения динамических действий в приведенных уведомлениях используйте NotificationActionsProvider. Вы можете найти полное руководство в документах.