我扩展了AbstractAccountAuthenticator并覆盖了getAuthToken。一切都可以与我的getAuthToken一起正常工作,除非缓存的身份验证令牌有效,在这种情况下,在不调用我的getAuthToken的情况下调用了AccountManagerCallback(signinCallback)。这是一个问题,因为我的getAuthToken使用应用程序特定的数据加载了返回包。

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

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


这是您期望的吗,还是客户经理getAuthToken总是调用我的身份验证器替代?我究竟做错了什么?

最佳答案

有点晚了,但是记录了这个答案,因为我正在通过Google搜索来寻找类似的东西,这使我来到了这里。

对Android文档的进一步研究表明,getAuthToken仅应返回三组键(取决于调用的结果)

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

有关更多参考,请参见http://developer.android.com/reference/android/accounts/AccountManager.html

09-04 22:48