gpt4 book ai didi

android - Firebase 云消息传递因升级到 Oreo 而停止

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:33:53 24 4
gpt4 key购买 nike

我刚刚开始进行 Android 开发,并在运行向导后设法让 Firebase 消息传递正常工作。我能够在运行 Nougat 的 Nexus 5X 上收到后台通知。但是后来我的 5X 升级到 Oreo 并且 Firebase 通知从那以后就没有用了。我听说过后台执行限制,但因为我才刚刚开始,所以我不知道我实际上需要做什么才能让它再次运行。有没有关于这个的文章?我从头开始尝试一个新项目,希望向导已更新,但没有任何变化。我正在使用应用程序广播消息和主题订阅消息,没有使用设备 token 。

最佳答案

当您以 Android 8.0(API 级别 26)为目标时,您必须实现一个或多个通知 channel 以向您的用户显示通知。如果您不以 Android 8.0(API 级别 26)为目标,但您的应用在运行 Android 8.0(API 级别 26)的设备上使用,则您的应用的行为与在运行 Android 7.1(API 级别 25)或更低版本的设备上的行为相同。

如果您将目标版本更改为 Android 8.0(API 级别 26),则必须进行以下更改

      if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
String id = "id_product";//This will be enter when creating Builder
// The user-visible name of the channel.
CharSequence name = "Product";
// The user-visible description of the channel.
String description = "Notifications regarding our products";
int importance = NotificationManager.IMPORTANCE_MAX;
NotificationChannel mChannel = new NotificationChannel(id, name, importance);
// Configure the notification channel.
mChannel.setDescription(description);
mChannel.enableLights(true);
// Sets the notification light color for notifications posted to this
// channel, if the device supports this feature.
mChannel.setLightColor(Color.RED);
notificationManager.createNotificationChannel(mChannel);
}

更改您的 Builder 构造函数

NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(applicationContext, **ID you have put in the Notification Channel**)

最后您可以从 Builder 创建通知

notificationManager.notify("0", notificationBuilder.build())

引用:https://developer.android.com/guide/topics/ui/notifiers/notifications.html#ManageChannels

关于android - Firebase 云消息传递因升级到 Oreo 而停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46638108/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com