Стиль набора уведомлений не работает в sdk30

#android #notifications #mediasession

#Android #уведомления #медиасессия

Вопрос:

введите описание изображения здесь

 MediaSessionCompat mediaSessionCompat = new MediaSessionCompat(ctx, "tag");  

Когда я устанавливаю .style(), уведомление не выводится. Есть ли что-нибудь в mediaSessionCompat, что вам нужно сделать, кроме настройки контекста и тега?

Комментарии:

1. Что не работает? Отображается ли уведомление? Используете ли вы setMetaData в mediasession? Обновите свой вопрос, чтобы предоставить дополнительную информацию.

2. Спасибо. Когда я устанавливаю .style() уведомление не отображается, как я могу использовать setMetaData в mediasession?

Ответ №1:

Если вы используете этот setStyle метод в уведомлении, вам необходимо предоставить метаданные для сеанса МУЛЬТИМЕДИА.

 private void updateMetadata () { mediaSession.setMetadata(new MediaMetadataCompat.Builder()  .putString(MediaMetadataCompat.METADATA_KEY_ARTIST, song.getArtistTitle())  .putString(MediaMetadataCompat.METADATA_KEY_ALBUM_ARTIST, song.getArtistTitle())  .putString(MediaMetadataCompat.METADATA_KEY_ALBUM, song.getAlbumTitle())  .putString(MediaMetadataCompat.METADATA_KEY_TITLE, song.getTitle())  .putLong(MediaMetadataCompat.METADATA_KEY_DURATION, song.getDuration())  .putLong(MediaMetadataCompat.METADATA_KEY_TRACK_NUMBER, getPosition())  .putBitmap(MediaMetadataCompat.METADATA_KEY_ALBUM_ART, null)  .build()); }   

Не забудьте вызвать этот метод, например, при изменении ваших данных. Я не знаю, как вы справляетесь с этим, поэтому я не могу предоставить для этого правильное место. Я бы сказал, что там же, где вы обновляете уведомление, когда меняется песня, и это всего лишь предложение.

Комментарии:

1. Спасибо вам за то, что поделились своими знаниями.