Android 简单的广播接收器是否足以处理FCM事件?
我与FCM有问题,我想从Notifications composer(Firebase web)发送通知。并稍微修改它在系统通知中心(系统托盘)中的外观。并单击“打开完整通知窗口活动” 这并不是什么,只是将操作添加到我在自定义数据中定义的打开链接 使用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
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不是真的,我创建的通知在通知点击事件中有未完成的意图,但接收器本身不会调用任何“未完成的意图行为”。