如何获得停止在 Android P 上的媒体样式通知的 X 按钮?
How can I get the X button for stopping on the media style notification on Android P?
我正在尝试在 MediaStyle
Notification
Android P 上显示 X。我看到很多帖子基本上都说这不适用于 API 我认为 21 岁及以上,但这是显示它的应用程序的屏幕截图:
我试过下面这段代码,但没有显示:
Notification notification = new NotificationCompat.Builder(getApplicationContext(), TESTID)
.setSmallIcon(R.drawable.ic_launcher_background)
.setContentTitle("Track title")
.setContentText("Artist - Album")
.addAction(R.drawable.ic_fast_forward_black_24dp, "fwd", pi)
.addAction(R.drawable.ic_fast_forward_black_24dp, "fwd", pi)
.addAction(R.drawable.ic_fast_forward_black_24dp, "fwd", pi)
.setLargeIcon(BitmapFactory.decodeResource(getResources(), R.drawable.vectors_525058875))
.setAutoCancel(false)
.setStyle(new MediaStyle()
.setMediaSession(mediaSessionCompat.getSessionToken()).setShowCancelButton(true).setCancelButtonIntent(pi))
.build();
notificationManager.notify(300, notification);
您必须使用非常鲜为人知的 class DecoratedMediaCustomViewStyle,它与 MediaStyle 类似,只是它允许您使用 RemoteViews 自定义显示到内容区域的内容。诀窍是复制 MediaStyle 布局(您可以从支持库中复制它)并自定义它,例如添加一个 X 按钮。
但是,有两个注意事项:
- DecoratedMediaCustomViewStyle 在小米设备上无法正确呈现(它看起来全是白色)。所以你必须在这些设备上回退到 MediaStyle
- 在 DecoratedMediaCustomViewStyle 的自定义 RemoteView 中为 TextView 设置颜色不起作用,在 XML 中设置或通过代码设置。
所以你只能使用默认的文本颜色(黑色)。
2020 年更新:DecoratedMediaCustomViewStyle 使 MIUI 12 在 SystemUI 中崩溃。 MIUI 主要出现在 Xiaomi/Redmi 台设备上。
我正在尝试在 MediaStyle
Notification
Android P 上显示 X。我看到很多帖子基本上都说这不适用于 API 我认为 21 岁及以上,但这是显示它的应用程序的屏幕截图:
我试过下面这段代码,但没有显示:
Notification notification = new NotificationCompat.Builder(getApplicationContext(), TESTID)
.setSmallIcon(R.drawable.ic_launcher_background)
.setContentTitle("Track title")
.setContentText("Artist - Album")
.addAction(R.drawable.ic_fast_forward_black_24dp, "fwd", pi)
.addAction(R.drawable.ic_fast_forward_black_24dp, "fwd", pi)
.addAction(R.drawable.ic_fast_forward_black_24dp, "fwd", pi)
.setLargeIcon(BitmapFactory.decodeResource(getResources(), R.drawable.vectors_525058875))
.setAutoCancel(false)
.setStyle(new MediaStyle()
.setMediaSession(mediaSessionCompat.getSessionToken()).setShowCancelButton(true).setCancelButtonIntent(pi))
.build();
notificationManager.notify(300, notification);
您必须使用非常鲜为人知的 class DecoratedMediaCustomViewStyle,它与 MediaStyle 类似,只是它允许您使用 RemoteViews 自定义显示到内容区域的内容。诀窍是复制 MediaStyle 布局(您可以从支持库中复制它)并自定义它,例如添加一个 X 按钮。
但是,有两个注意事项:
- DecoratedMediaCustomViewStyle 在小米设备上无法正确呈现(它看起来全是白色)。所以你必须在这些设备上回退到 MediaStyle
- 在 DecoratedMediaCustomViewStyle 的自定义 RemoteView 中为 TextView 设置颜色不起作用,在 XML 中设置或通过代码设置。 所以你只能使用默认的文本颜色(黑色)。
2020 年更新:DecoratedMediaCustomViewStyle 使 MIUI 12 在 SystemUI 中崩溃。 MIUI 主要出现在 Xiaomi/Redmi 台设备上。