Android 简单的广播接收器是否足以处理FCM事件?

Android 简单的广播接收器是否足以处理FCM事件?,android,firebase,firebase-cloud-messaging,android-notification-bar,Android,Firebase,Firebase Cloud Messaging,Android Notification Bar,我与FCM有问题,我想从Notifications composer(Firebase web)发送通知。并稍微修改它在系统通知中心(系统托盘)中的外观。并单击“打开完整通知窗口活动” 这并不是什么,只是将操作添加到我在自定义数据中定义的打开链接 使用FirebaseMessagingService我无法打开或操作按钮,也无法显示完整的通知信息 操作按钮您可能理解为什么无法实现,但完整的通知信息?不太明显 让我解释一下。当应用程序位于后台时,不会触发FirebaseMessagingServic

我与FCM有问题,我想从Notifications composer(Firebase web)发送通知。并稍微修改它在系统通知中心(系统托盘)中的外观。并单击“打开完整通知窗口活动”

这并不是什么,只是将操作添加到我在自定义数据中定义的打开链接

使用
FirebaseMessagingService
我无法打开或操作按钮,也无法显示完整的通知信息

操作按钮您可能理解为什么无法实现,但完整的通知信息?不太明显

让我解释一下。当应用程序位于后台时,不会触发FirebaseMessagingService.onMessageReceived,因此您无法自定义通知的外观或显示的活动

默认情况下,它启动默认启动活动并向其中添加自定义数据

这就是问题所在

它只添加我在NotificationsComposer的“附加选项”部分中定义的自定义数据。 也没有通知标题,也没有正文添加到意向附加中

试图通过在自定义数据中添加这些内容来解决此问题,如果您必须说出超过200个符号(自定义数据最大输入长度)的内容,则不起作用

因此,我通过在android清单中声明以下内容来覆盖FCM广播接收器:


还实现了我的完美命名接收器

FCMOverlordBroadcastReceiver类:BroadcastReceiver(){
覆盖接收(上下文:上下文?,意图:意图){
NotificationHandler(context!!).onMessageReceived(RemoteMessage(intent.extras))
abortBroadcast()
}
}
我知道,如果收到的事件是
com.google.android.c2dm.intent.REGISTRATION
received,这可能会导致崩溃

据我测试,这种逻辑在诺基亚8(安卓9)、安卓10仿真器和安卓11仿真器(应用程序被杀死)上都能正常工作

我使用Glide异步加载
BigPictureStyle
的通知图像,它仍然有效

我的主要问题

这种做法可能会导致崩溃,或者在某些情况下不起作用, 当然除了那个注册活动


p、 我使用Firebase messaging
RemoteMessage
类来解析
intent.extras

。也许对你们有帮助。你们在fcm接收器中有一些意图挂起吗?@blay不是真的,我创建的通知在通知点击事件中有挂起的意图,但接收器本身不会调用任何“挂起的意图行为”。。也许对你们有帮助。你们在fcm接收器中有一些未完成的意图吗?@blay不是真的,我创建的通知在通知点击事件中有未完成的意图,但接收器本身不会调用任何“未完成的意图行为”。