📅  最后修改于: 2023-12-03 14:52:11.680000             🧑  作者: Mango
FirebaseInstanceIDService 是 Firebase Cloud Messaging (FCM) 的一部分,用于在设备上生成和管理 FCM 实例 ID。使用 FCM 实例 ID,您可以发送推送通知和将数据消息发送到设备。
下面是启用 FirebaseInstanceIDService 的步骤:
在开始之前,请确保您已在您的应用程序中添加 Firebase。要添加 Firebase,请按照以下步骤操作:
在 Firebase 控制台 中创建一个项目。
将以下 Gradle 依赖项添加到您的应用程序模块级别的 build.gradle 文件中:
implementation 'com.google.firebase:firebase-messaging:21.1.0'
在您的应用程序中添加 Firebase 配置文件。
对于 Android 应用程序,请将以下内容添加到您的 AndroidManifest.xml 文件中:
<application ...>
<!-- Add your Firebase settings -->
<meta-data
android:name="com.google.firebase.messaging.default_notification_icon"
android:resource="@drawable/ic_notification" />
<meta-data
android:name="com.google.firebase.messaging.default_notification_color"
android:resource="@color/colorAccent" />
<service
android:name=".MyFirebaseMessagingService">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
<service
android:name=".MyFirebaseInstanceIDService">
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
</intent-filter>
</service>
</application>
创建一个 FirebaseInstanceIDService 类,继承 FirebaseInstanceIdService,将以下代码添加到该类中:
public class MyFirebaseInstanceIDService extends FirebaseInstanceIdService {
private static final String TAG = "MyFirebaseIIDService";
@Override
public void onTokenRefresh() {
// Get updated InstanceID token.
String refreshedToken = FirebaseInstanceId.getInstance().getToken();
// TODO: Implement this method to send any registration to your app's servers.
sendRegistrationToServer(refreshedToken);
}
private void sendRegistrationToServer(String token) {
// Add custom implementation, as needed.
}
}
onTokenRefresh 方法在设备上生成新的 FCM 实例 ID 或在 FCM 实例 ID 被刷新时调用。
在该方法中,您可以获取新的 FCM 实例 ID,然后将其发送到您的后端服务器。
将以下内容添加到您的 AndroidManifest.xml 文件中,以将 FirebaseInstanceIDService 添加到应用程序中:
<service
android:name=".MyFirebaseInstanceIDService">
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
</intent-filter>
</service>
现在您的应用程序已启用 FirebaseInstanceIDService,并可以在设备上生成和管理 FCM 实例 ID。
如果您需要发送推送通知或将数据消息发送到设备,请使用获取的 FCM 实例 ID。