如何为 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 中所述。
我目前正在使用 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 中所述。