我正在 Xamarin Android 中开发一个应用程序来播放流媒体中的音乐。设置元数据时,它们会更新并正确显示在移动通知中,但是当我通过蓝牙将其连接到汽车等设备时,元数据不会更新。有人能告诉我为什么吗?
我创建 MediaSession 并更新元数据的代码如下。
protected virtual void InitMediaSession()
{
MediaSession = new MediaSessionCompat(ApplicationContext, ApplicationContext.PackageName);
Intent intent = PackageManager?.GetLaunchIntentForPackage(PackageName);
PendingIntent pendingIntent = PendingIntent.GetActivity(ApplicationContext, 0, intent, PendingIntentFlags.UpdateCurrent);
MediaSession.SetSessionActivity(pendingIntent);
if (Build.VERSION.SdkInt < BuildVersionCodes.O)
{
MediaSession.SetFlags(MediaSessionCompat.FlagHandlesMediaButtons | MediaSessionCompat.FlagHandlesTransportControls);
}
MediaSession.Active = true;
SessionToken = MediaSession.SessionToken;
}
private void UpdateMetadata(string title, string artist)
{
var metadataBuilder = new MediaMetadataCompat.Builder();
metadataBuilder.PutString(MediaMetadata.MetadataKeyTitle, title)
.PutString(MediaMetadata.MetadataKeyArtist, artist);
var metadata = metadataBuilder.Build();
MediaSession.SetMetadata(metadata);
}