gpt4 book ai didi

android - 如何在 MyFirebaseMessagingService 中获取 recent_token

转载 作者:行者123 更新时间:2023-11-29 18:26:12 24 4
gpt4 key购买 nike

我正在使用 FirebaseInstanceId.getInstance().getToken(); 方法在我的 FcmInstanceIdService 中获取 token ,但由于这些已被弃用,我试图重写这段代码 -

public class FcmInstanceIdService extends FirebaseInstanceIdService
{
public void onTokenRefresh()
{
String recent_token = FirebaseInstanceId.getInstance().getToken();

SharedPreferences sharedPreferences = getApplicationContext().getSharedPreferences(getString(R.string.FCM_PREF), Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString(getString(R.string.FCM_TOKEN), recent_token);
editor.commit();

}
}

到-

public class MyFirebaseMessagingService extends FirebaseMessagingService {

@Override
public void onNewToken(String s) {
String recent_token = FirebaseInstanceId.getInstance().getInstanceId().addOnSuccessListener(MyActivity.this, new OnSuccessListener<InstanceIdResult>() {
@Override
public void onSuccess(InstanceIdResult instanceIdResult) {
String newToken = instanceIdResult.getToken();
Log.e("newToken",newToken);

}
});
SharedPreferences sharedPreferences = getApplicationContext().getSharedPreferences(getString(R.string.FCM_PREF), Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString(getString(R.string.FCM_TOKEN), recent_token);
editor.commit();
}

@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
super.onMessageReceived(remoteMessage);
}
}

在获取 recent_token 时,我无法获取我应该在 addOnSuccessListener 中将哪个 Activity 作为 MyActivity 传递。

旧代码引用 - https://www.zeolearn.com/magazine/sending-push-notification-to-android-application-from-your-own-django-app-server但这不能正常工作,因为 FirebaseInstanceIdService 已被弃用,现在正试图让它工作。

我找到了解决方案 - https://medium.com/android-school/firebaseinstanceidservice-is-deprecated-50651f17a148

如果您对我的旧代码引用有任何其他解决方案,请分享。

最佳答案

无需在 onNewToken 中调用 getInstanceId().addOnSuccessListener,因为您已经获得带有参数 s 的 newToken。所以像下面这样尝试:

@Override
public void onNewToken(String s) {
SharedPreferences sharedPreferences = getApplicationContext().getSharedPreferences(getString(R.string.FCM_PREF), Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString(getString(R.string.FCM_TOKEN), s);
editor.commit();
}

关于android - 如何在 MyFirebaseMessagingService 中获取 recent_token,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58900576/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com