0

我在我的 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
4

1 回答 1

0

我发现导致它的错误。令人惊讶的是这与图像无关,而是与设置带有额外信息的捆绑包有关。

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

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

    mediaSessionCompat.setExtras(bundleExtras);

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

希望如果有人遇到同样奇怪的错误,这会有所帮助!

于 2018-10-29T19:43:56.437 回答