Система "Пользовательский интерфейс остановлен" MediaSessionCompat - PullRequest
0 голосов
/ 28 октября 2018

У меня проблема с пользовательским интерфейсом системы на моем Android-устройстве.Это происходит каждый раз, когда я пытаюсь активировать mediaSessionCompat.Я посмотрел на следующие советы следующего поста: https://github.com/firebase/quickstart-android/issues/382, но не работает.Ниже приведен простой пример кода с дополнительной информацией.

MediaSessionCompat mediaSessionCompat;
ComponentName mediaButtonReceiver = new ComponentName(getApplicationContext(), MediaButtonReceiver.class);
mediaSessionCompat = new MediaSessionCompat(getApplicationContext(), "Tag", mediaButtonReceiver, null);

mediaSessionCompat.setCallback(mediaSessionCallback);
mediaSessionCompat.setFlags(
        MediaSessionCompat.FLAG_HANDLES_MEDIA_BUTTONS |
        MediaSessionCompat.FLAG_HANDLES_TRANSPORT_CONTROLS |
        MediaSessionCompat.FLAG_HANDLES_QUEUE_COMMANDS);

Intent mediaButtonIntent = new Intent(Intent.ACTION_MEDIA_BUTTON);
mediaButtonIntent.setClass(this, MediaButtonReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, mediaButtonIntent, 0);
mediaSessionCompat.setMediaButtonReceiver(pendingIntent);
mediaSessionCompat.setRatingType(RatingCompat.RATING_NONE);
mediaSessionCompat.setShuffleMode(PlaybackStateCompat.SHUFFLE_MODE_NONE);
mediaSessionCompat.setQueue(mediaQueueManager.getMediaQueue());

MediaSessionCompat.Token token = mediaSessionCompat.getSessionToken();
setSessionToken(token);

mediaSessionCompat.setActive(true); // this is where the error occurs

Я попытался отключить все значки, а также установить для них устаревший значок, который я создал с помощью создателя Image Asset.

Я создаю приложение с:

  • minSdkVersion 21
  • targetSdkVersion 27

1 Ответ

0 голосов
/ 29 октября 2018

Я нашел там ошибку, которая его вызывала.Удивительно, но это было НЕ , что-либо связанное с изображениями, но вместо этого было связано с настройкой пакета с дополнительной информацией.

Ниже приведен фрагмент кода, в котором произошла ошибка после того, как я установил метаданные:

    Bundle bundleExtras = new Bundle();
    bundleExtras.putSerializable(
            MediaSessionExtras.MEDIA_SHARED_IMAGE.name(),
            getMediaImage()
    );

    mediaSessionCompat.setExtras(bundleExtras);

К вашему сведению getMediaImage() не вернул никаких значений null, и вся информация внутри объекта serializable была инициализирована значением.

Надеюсь, если у кого-то будет такой же странныйошибка это помогает!

...