gpt4 book ai didi

android - 处理 GCM 客户端中的注册 ID 更改

转载 作者:行者123 更新时间:2023-11-29 01:52:42 24 4
gpt4 key购买 nike

我正在阅读这里的文档:http://developer.android.com/google/gcm/gs.html

查看此方法:

private String getRegistrationId(Context context) {
final SharedPreferences prefs = getGCMPreferences(context);
String registrationId = prefs.getString(PROPERTY_REG_ID, "");
if (registrationId.length() == 0) {
Log.v(TAG, "Registration not found.");
return "";
}
// check if app was updated; if so, it must clear registration id to
// avoid a race condition if GCM sends a message
int registeredVersion = prefs.getInt(PROPERTY_APP_VERSION, Integer.MIN_VALUE);
int currentVersion = getAppVersion(context);
if (registeredVersion != currentVersion || isRegistrationExpired()) {
Log.v(TAG, "App version changed or registration expired.");
return "";
}
return registrationId;
}

SharedPreferences 中没有保存 id 或应用程序版本更改或注册过期时,它返回空字符串。

在所有这三种情况下,都会调用一个方法 registerBackground()。此方法向我的 Web 服务器发出 HTTP 请求,服务器将注册 ID 存储在数据库中。

但如果发生这种情况,每次版本更新或注册到期都会在我服务器上的 TABLE 中创建一个新行。

有没有办法在客户端发生注册 ID 更改事件?因为如果发生这种情况,我将更新 TABLE 中的行。

最佳答案

您可以稍微更改代码以实现您想要的。

当存储在共享首选项中的旧注册 ID 过期时,将其存储在某个地方。然后,在从 Google 获得新的注册 ID 后,将旧 ID 和新 ID 发送到您的服务器,并更新数据库而不是创建新行。

关于android - 处理 GCM 客户端中的注册 ID 更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17007326/

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