AccountManager getAuthToken()抛出java.lang.IllegalArgumentException:没有这样的帐户

时间:2014-01-21 09:33:12

标签: android accountmanager

当我执行以下getAuthToken()方法调用时,

final AccountManagerFuture<Bundle> future = AccountManager.get(this)
                .getAuthToken(account, authTokenType, null, this, null, null);

它可以在设备上正常工作,但它会在模拟器上抛出IllegalArgumentException。

01-21 02:39:41.660: E/AndroidRuntime(1143): java.lang.IllegalArgumentException: no such account
01-21 02:39:41.660: E/AndroidRuntime(1143):     at android.os.Parcel.readException(Parcel.java:1465)
01-21 02:39:41.660: E/AndroidRuntime(1143):     at android.os.Parcel.readException(Parcel.java:1415)
01-21 02:39:41.660: E/AndroidRuntime(1143):     at android.accounts.IAccountManager$Stub$Proxy.getAuthToken(IAccountManager.java:929)
01-21 02:39:41.660: E/AndroidRuntime(1143):     at android.accounts.AccountManager$5.doWork(AccountManager.java:923)
01-21 02:39:41.660: E/AndroidRuntime(1143):     at android.accounts.AccountManager$AmsTask.start(AccountManager.java:1472)
01-21 02:39:41.660: E/AndroidRuntime(1143):     at android.accounts.AccountManager.getAuthToken(AccountManager.java:921)

我在Manifest文件中添加了所有必需的权限。

1 个答案:

答案 0 :(得分:0)

试试这个:

AccountManager googleAccountManager = AccountManager.get(this);
final Account[] accounts = googleAccountManager.getAccountsByType("com.google");

这将为您提供设备上的一系列Google帐户