【问题标题】:AccountManager.getAuthToken returns empty string, sometimesAccountManager.getAuthToken 有时会返回空字符串
【发布时间】:2012-02-08 12:39:44
【问题描述】:

在使用 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;
}

在我的活动的onCreate 方法中调用此方法时,似乎返回了空令牌,尽管并非总是如此。

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

【问题讨论】:

    标签: android


    【解决方案1】:

    您需要在请求之前使令牌无效。

    AuthToken from AccountManager in Android Client No Longer Working

    【讨论】:

      猜你喜欢
      • 2023-03-18
      • 1970-01-01
      • 2020-10-07
      • 1970-01-01
      • 1970-01-01
      • 2020-01-03
      • 1970-01-01
      • 1970-01-01
      • 2020-01-27
      相关资源
      最近更新 更多