显示没有AppCompat的Android O及更高版本的通知

时间:2018-11-26 11:37:51

标签: android android-notifications

因此,我有没有任何库的Ultralight应用程序,但Crashlytics除外。

我想在所有版本的Android上显示通知,但是没有用于为Android O +设置频道ID的构造函数或方法。

我的代码现在看起来像这样

    NotificationCompat.Builder builder = new NotificationCompat.Builder(context);

    //Some builder things

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        NotificationChannel channel = new NotificationChannel("service_id",
                context.getString(R.string.app_name),
                NotificationManager.IMPORTANCE_DEFAULT);
        channel.setLockscreenVisibility(Notification.VISIBILITY_PUBLIC);
        ((NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE)).createNotificationChannel(channel);
    }

    Notification notification = builder.getNotification();
    NotificationManagerCompat.from(context).notify(id, notification);

是否有仅用于通知的兼容库?

1 个答案:

答案 0 :(得分:2)

Notification.BuilderNotificationCompact.Builder都可以做到这一点:

Notification.Builder(context, "channelId")
NotificationCompat.Builder(context, "channelId")

并且它们具有setChannelId方法。