提交工单
咨询集成、功能及报价等问题
产品 / 插件:音视频通话 UIKit
平台 / 框架:Android
更新时间:2024-05-11 19:27
当 Call Kit 从 FCM 接收到消息时,如果该消息不是来自 ZEGO SDK,它会发送一个广播到当前应用程序,动作为 com.zegocloud.zegouikit.call.fcm
,示例代码如下:
Intent intent = new Intent("com.zegocloud.zegouikit.call.fcm");
intent.putExtra("remoteMessage", remoteMessage);
context.sendBroadcast(intent);
因此,如果您已经集成了 Firebase Messaging,只需按照以下步骤完成迁移:
在您的应用程序中创建并静态注册一个 BroadcastReceiver:
YourCustomBroadcastReceiver.java
。Manifest.xml
文件的 application
节点,并将动作设置为 "com.zegocloud.zegouikit.call.fcm"
,示例如下:<receiver
android:name="com.zegocloud.uikit.demo.calloffline.YourCustomBroadcastReceiver"
android:enabled="true"
android:exported="false">
<intent-filter>
<action android:name="com.zegocloud.zegouikit.call.fcm"/>
</intent-filter>
</receiver>
从 Manifest.xml
中删除原始的 FCM Service,示例如下:
<service
android:name=".java.MyFirebaseMessagingService"
android:exported="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
请删除它以避免与 Zego SDK 冲突。
监听和处理相关事件:
您需要将逻辑从 MyFirebaseMessagingService
迁移到 YourCustomBroadcastReceiver
,示例如下。
原始代码:
public class YourFirebaseMsgService extends FirebaseMessagingService {
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
// 您的自定义逻辑
}
}
请迁移如下,并删除 YourFirebaseMsgService.java:
public class YourCustomBroadcastReceiver extends BroadcastReceiver {
private static final String TAG = "CustomReceiver";
public void onReceive(Context context, Intent intent) {
com.google.firebase.messaging.RemoteMessage remoteMessage = intent.getParcelableExtra("remoteMessage");
// 您的自定义逻辑
Log.d(TAG, "onReceive.remoteMessage.getData: " + remoteMessage.getData());
}
}
按照这些步骤,您应该能够接收和处理您自己的 FCM 消息。
联系我们
文档反馈