如何为 Android API 级别 < 26(在 Android Oreo 之前)创建通知渠道?

How can I create a notification channel for Android API level < 26 (before Android Oreo)?

我目前正在使用 Android 服务: https://developer.android.com/guide/components/services

我正在创建一个必须是前台服务的服务。 但是查看文档,前台服务需要通知通道。

但通知渠道仅在 api 26 或更高版本上。我如何为 < 26 岁的人创建通知渠道?

我受困于此代码

    if (VERSION.SDK_INT >= 26) {
        getSystemService(NotificationManager.class).createNotificationChannel(new NotificationChannel("ServiceWorker", "ServiceWorker", NotificationManager.IMPORTANCE_DEFAULT));
    }

无法为 API 级别 < 26 创建通知渠道,因为通知渠道是在 API 26.

中添加的

幸运的是,这意味着您的代码已经正确。通过仅在 API 级别 >= 26.

上创建频道,您已经在做正确的事情

当您使用 NotificationCompat.Builder, you can simply call setChannelId 无条件地使用您的字符串创建通知时,它会在不支持频道的 Android 版本上为您忽略它(“在 Build.VERSION_CODES.O").

然后您可以将返回的通知传递给 startForeground,如 guide you linked 中所述。