2

我扩展了 AbstractAccountAuthenticator 并覆盖了 getAuthToken。我的 getAuthToken 一切正常,除非缓存的 authtoken 有效,在这种情况下调用 AccountManagerCallback (signinCallback) 而不调用我的 getAuthToken。这是一个问题,因为我的 getAuthToken 会使用特定于应用程序的数据加载返回包。

这是我使用的客户经理电话:

`signinFuture = mAM.getAuthToken(account, getApplicationContext().getString(R.string.ACCOUNT_TYPE), null, SignInFragmentActivity.this, signinCallback, null);`

这是您所期望的还是应该客户经理 getAuthToken 总是调用我的身份验证器覆盖?我究竟做错了什么?

4

1 回答 1

1

有点晚了,但记录了这个答案,因为我正在通过谷歌搜索寻找类似的东西,这把我带到了这里。

对 Android 文档的仔细研究清楚地表明 getAuthToken 只应该返回三组密钥(取决于调用的结果)

正确的方法是在使用 AccountManager 显式创建帐户时将特定于应用程序的数据存储在 UserData 包中,并在您拥有有效的身份验证令牌后检索它。

请参阅http://developer.android.com/reference/android/accounts/AccountManager.html以获取更多参考。

于 2013-12-03T16:08:15.300 回答