使用Android的AccountManager获取Google帐户的身份验证令牌时,我有一种奇怪的行为.
当应用程序启动时,第一次调用将getAuthToken返回一个带有空字符串的包作为标记.下一次,我调用相同的方法,它返回一个有效的令牌.
这是我的代码:
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;
}
Run Code Online (Sandbox Code Playgroud)
在onCreate我的活动方法中调用此方法时,看起来像是返回空标记,尽管情况并非总是如此.
提前致谢.此外,我真的不知道何时使令牌无效.一天一次?每次启动?或者空标记是指示符,必须使标记无效,尽管它在下次调用时返回有效标记.
| 归档时间: |
|
| 查看次数: |
6489 次 |
| 最近记录: |