gpt4 book ai didi

java - 如何在 Android 中保存 FCM token ?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:34:40 26 4
gpt4 key购买 nike

我正在关注 this在 Firebase 中注册我的设备

我在这里尝试显示和保存通知 token

    public class MyFirebaseInstanceIDService extends FirebaseInstanceIdService {

private static final String TAG = "MyFirebaseIIDService";

@Override
public void onTokenRefresh() {
String refreshedToken = FirebaseInstanceId.getInstance().getToken();
Log.d(TAG, "Refreshed token: " + refreshedToken);
storeToken(refreshedToken);
}

private void storeToken(String token) {
//saving the token on shared preferences
SharedPrefManager.getInstance(getApplicationContext()).saveDeviceToken(token);
}
}

当我尝试注册它时总是说 token token 未生成表单 MainActivity

所以这里我的应用程序连接到 Firebase.. 我知道 FirebaseInstanceIdService 已弃用我也试过这个

public class MyFirebaseInstanceIDService extends FirebaseMessagingService {

private static final String TAG = "MyFirebaseIIDService";

@Override
public void onNewToken(String refreshedToken) {
refreshedToken = FirebaseInstanceId.getInstance().getInstanceId().getResult().getToken();
Log.d(TAG, "Refreshed token: " + refreshedToken);
storeToken(refreshedToken);
}

private void storeToken(String token) {
//saving the token on shared preferences
SharedPrefManager.getInstance(getApplicationContext()).saveDeviceToken(token);
}
}

但仍然没有生成相同的 token

最佳答案

onTokenRefresh/onNewToken 方法只有在生成新 token 时才会被调用。

通常(尤其是在开发过程中)您的应用在添加服务之前就已经生成了一个实例 ID token 。因此 onTokenRefresh/onNewToken 将不会被调用,并且您的共享首选项中不会有 token 。

因此,您应该使用 FirebaseInstanceId.getInstance().getInstanceId() 直接从您的主要 Activity 中获取 token ,如 documentation 中所示.这将获取上次生成的 token 。从那里开始,您可以使用 onTokenRefresh/onNewToken 来响应 token 更改

关于java - 如何在 Android 中保存 FCM token ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51834864/

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