com.google.gdata.client.GoogleService.setUserToken(android.accounts.AccountManager.getAuthToken(???))

我有工作代码使用gdata从我的用户的Google财经投资组合中检索供稿,但我必须使用setUserCredentials(用户名,密码) 。 我想做的是避免询问用户他们的用户名/密码,因为Android设备已经可以访问他们的Google帐户。

我相信我应该能够使用setUserToken(String)来做到这一点,但我无法弄清楚如何从Android获取适当的令牌。 我已经尝试过AccountManager.get(context).blockingGetAuthToken(),但这不是正确的调用,或者我传递了错误的参数。

有没有人使用手机上的用户现有的Google凭据获得gdata?

提前谢谢,莱尼

AccountManager.blockingGetAuthToken()是正确的调用。 传递一个Account ,一个String authTokenType – 在你的情况下, "android""finance" ,你的选择(它正在寻找的字符串的值没有清楚地记录)。

获取帐户的简单方法是将所有客户端通信作为onPerformSync()调用的一部分来执行, onPerformSync()调用同步适配器。 您可以找到许多有关设置SyncAdapter的教程。 作为让SyncAdapter运行的一部分,你最终会得到一堆权限,可能就像下面这样:

          

最后两个,再次,有点棘手,从谁知道在哪里挖出他们。