后矿石通知背景颜色

时间:2018-12-08 17:56:49

标签: java android notifications android-8.0-oreo

我正在尝试为Android Pie中的通知设置颜色,但是按照Android Developers上的信息进行操作后,我似乎无法正常使用,即通知保持白色。这是我的代码:

public class MainActivity extends AppCompatActivity {

int mColor = Color.CYAN;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}

public void sendNotification(View view) {
    NotificationChannel notificationChannel = new NotificationChannel("1", "1", NotificationManager.IMPORTANCE_DEFAULT);
    notificationChannel.setDescription("Test Notifications");

    NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
    notificationManager.createNotificationChannel(notificationChannel);

    Notification.Builder builder = new Notification.Builder(this, "1");
    builder.setSmallIcon(R.mipmap.ic_launcher_round)
            .setContentText("Test Notification")
            .setColorized(true)
            .setColor(mColor);

    NotificationManagerCompat notificationManagerCompat = NotificationManagerCompat.from(this);
    notificationManagerCompat.notify(1, builder.build());

}

对此,我将不胜感激,谢谢!

1 个答案:

答案 0 :(得分:1)

您链接的方法是这样的:

  

对于大多数样式,仅当通知用于前台服务通知时才应用颜色。但是,对于附加了媒体会话的Notification.MediaStyle和Notification.DecoratedMediaCustomViewStyle通知,则没有此要求。

除非您对通知使用MediaStyle或DecoratedMediaCustomViewStyle,否则无法通过常规调用notify()来设置颜色。

如果您不能使用任何一种样式,则此通知需要成为服务的一部分,您可以在其中通过startForeground()进行传递。