6
Android 계정 관리자를 사용하여 Google 계정에 대한 인증 토큰을 얻는 경우 이상한 행동을합니다.AccountManager.getAuthToken은 빈 문자열을 반환합니다.
앱이 시작되면 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
방법으로 호출 할 때 항상 그렇지 않다하더라도 빈 토큰이, 반환되는 것 같습니다.
미리 감사드립니다. 또한 토큰을 무효화 할시기를 알지 못합니다. 하루에 한 번? 시작할 때마다? 또는 빈 토큰이 바로 다음 호출에서 유효한 토큰을 반환하지만 토큰이 무효화되어야한다는 표시기입니다.