我正在使用FirebaseInstanceId.getInstance().getToken();
方法在我的内部获取令牌,FcmInstanceIdService
但由于这些已被弃用,我试图重写此代码 -
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);
}
}
我无法MyActivity
在addOnSuccessListener
获取recent_token
.
旧代码参考 - 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
如果您对我的旧代码参考有任何其他解决方案,请分享。