代码之家  ›  专栏  ›  技术社区  ›  casolorz

如何在Android P上获得停止媒体风格通知的X按钮?

  •  1
  • casolorz  · 技术社区  · 6 年前

    我想把X显示在 MediaStyle Notification Android P.我看到很多帖子基本上都说这在API 21和更高版本上不起作用,但下面是一个显示它的应用程序的截图:

    enter image description here

    我在下面尝试过此代码,但它没有显示:

        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);
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   b0b    6 年前

    你必须用很少人知道的课 DecoratedMediaCustomViewStyle 这与MediaStyle类似,只是它允许您使用远程视图自定义显示在内容区域中的内容。技巧是复制MediaStyle布局(您可以从支持库中复制它)并自定义它,例如添加一个X按钮。

    但是,有两个注意事项:

    • DecoratedMediaCustomViewStyle无法在小米设备上正确呈现(看起来全是白色)。因此,您必须在这些设备上回退到MediaStyle
    • 在DecoratedMediaCustomViewStyle的自定义远程视图中为textView设置颜色不起作用,无论是在XML中还是通过代码设置。 因此,您只能使用默认的文本颜色(黑色)。