【发布时间】:2026-01-19 16:55:02
【问题描述】:
我正在使用 Visual Studio + Xamarin 开发一个 Android 应用程序,并尝试在 Oreo (API 26) 上接收后台 Firebase Cloud Messaging 通知。
问题
当我的应用程序在后台运行时,通知抽屉中不会显示通知(仅在 Android API 26 Oreo 上)。但是,当应用程序处于前台时,通知会起作用。
评论
FCM 通知适用于
我的设置如下;
清单
Target Android Version: Android 8.0 (API level 26)
Minimum Android Version: Android 4.1 (API level 16)
Android 构建工具
Android SDK Tools 26.1.1
Android SDK Platform-Tools 26.0.2
Android SDK Build Tools 26.0.2
Firebase 云消息传递负载
我正在使用 node.js firebase 库发送以下 FCM 负载:
var payload = {
notification: {
title: "My Title",
body: "My body"
},
data: {
type: 'A_CUSTOM_TYPE_VARIABLE'
}
};
Xamarin 应用程序输出中的错误
当我从我的服务器或通过 Firebase 控制台发送 FCM 并且应用程序在后台时,我可以看到应用程序接收到 FCM,但在它到达我的代码之前出现错误。应用程序输出面板中有一个事件输出,内容如下:
[Notification] Use of stream types is deprecated for operations other than volume control
[Notification] See the documentation of setSound() for what to use instead with android.media.AudioAttributes to qualify your playback use case
开发者选项警告提示
Settings > System > Developer Options > Show notification channel warnings (turn on)
我在开发者选项中打开了“显示通知渠道警告”,现在我在广播和 FCM 消息时看到以下错误消息(应用程序处于后台时):
相关 * 帖子
- Oreo API 26 notification not displaying - 只讨论解决方案
关于如何构建通知。然而
FirebaseMessageReceiever 或 MainActivity 甚至不会在我的
案例。
- Notifications fail to display in Oreo - 好像有一个
支持库中的错误。
【问题讨论】:
-
为了得到这个代码,我最终构建了 API 级别 25 (7.1.1),它可以工作(在所有 API 版本上通过前台 + 后台应用程序收到 FCM 通知,包括 API 26奥利奥)。希望对寻找的人有所帮助!
-
你用奥利奥做这个了吗?我遇到了同样的问题...
标签: android xamarin notifications xamarin.android firebase-cloud-messaging