ard*_*evd 2 android firebase firebase-cloud-messaging
因此,既然FirebaseInstanceIdService服务已被弃用,我不确定用什么替换它。
我以前在清单中声明了一个服务,如下所示:
<service
android:name=".fcm.FcmIdService">
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
</intent-filter>
</service>
Run Code Online (Sandbox Code Playgroud)
服务本身:
public class FcmIdService extends FirebaseInstanceIdService {
@Override
public void onTokenRefresh() {
// Create notification channel.
createFcmNotificationChannel();
}
}
Run Code Online (Sandbox Code Playgroud)
如果删除该服务,我将不再收到通知,因此我假设我必须用其他东西代替它。
谢谢。
编辑:该问题与建议的重复问题有所不同,它还涵盖了对我仍然不清楚的受影响服务的清单声明。
检查此主题:
不推荐使用FirebaseInstanceIdService
您必须将其替换为:
public class MyFirebaseMessagingService extends FirebaseMessagingService {
@Override
public void onNewToken(String s) {
super.onNewToken(s);
Log.e("NEW_TOKEN",s);
}
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
super.onMessageReceived(remoteMessage);
}
}
Run Code Online (Sandbox Code Playgroud)
并在清单中:
<service
android:name=".MyFirebaseMessagingService"
android:stopWithTask="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
Run Code Online (Sandbox Code Playgroud)
如果您想在项目中的某处获取令牌:
FirebaseInstanceId.getInstance().getInstanceId().addOnSuccessListener( MyActivity.this, new OnSuccessListener<InstanceIdResult>() {
@Override
public void onSuccess(InstanceIdResult instanceIdResult) {
String newToken = instanceIdResult.getToken();
Log.e("newToken",newToken);
}
});
Run Code Online (Sandbox Code Playgroud)
无需使用
<action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
Run Code Online (Sandbox Code Playgroud)
希望对您有帮助
| 归档时间: |
|
| 查看次数: |
1150 次 |
| 最近记录: |