系统“ UI已停止” MediaSessionCompat

时间:2018-10-28 17:06:17

标签: android android-mediasession

我的android设备上的系统UI崩溃了。每当我尝试激活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

我尝试禁用所有图标,并将它们设置为通过“图像资产”创建器创建的旧版图标。

我正在使用以下程序构建应用程序:

  • minSdkVersion 21
  • targetSdkVersion 27

1 个答案:

答案 0 :(得分:0)

我发现了引起它的错误。令人惊讶的是,它与图像无关,但与设置带有附加信息的捆绑包有关。

下面是我设置元数据后发生错误的代码段:

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

    mediaSessionCompat.setExtras(bundleExtras);

仅供参考,getMediaImage()没有返回任何null值,并且serializable对象内部的所有信息都被初始化为一个值。

希望有人出现相同的怪异错误会有所帮助!