gpt4 book ai didi

android - AccountManager.getAuthToken 有时会返回空字符串

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

在使用 Android 的 AccountManager 获取 Google 帐户的授权 token 时,我遇到了一个奇怪的行为。

应用启动时,第一次调用 getAuthToken 会返回一个包,其中包含一个空字符串作为 token 。下一次,我调用相同的方法,它返回一个有效的 token 。

这是我的代码:

public String updateToken(final boolean invalidateToken, final Context c) {
String authToken = "";
try {
final AccountManager am = AccountManager.get(c);
final Account[] accounts = am.getAccountsByType("com.google");

final Bundle bundle = am.getAuthToken(accounts[0], "android", true,
null, null).getResult();

authToken = bundle.getString(AccountManager.KEY_AUTHTOKEN)
.toString();

if (invalidateToken) {
am.invalidateAuthToken("com.google", authToken);
authToken = updateToken(false, c);
}
} catch (final Exception e) {
//Just for debugging issues.
e.printStackTrace();
}
return authToken;
}

当在我的 Activity 的 onCreate 方法中调用此方法时,似乎返回了空 token ,尽管情况并非总是如此。

提前致谢。另外我真的不知道什么时候使 token 无效。一天一次?每次开机?或者空 token 是否指示 token 必须失效,尽管它在下一次调用时返回有效 token 。

最佳答案

在请求 token 之前,您需要使 token 无效。

参见 AuthToken from AccountManager in Android Client No Longer Working

关于android - AccountManager.getAuthToken 有时会返回空字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9193465/

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