我从一开始就在寻找答案,我仍然不知道该怎么做! 解释问题: 我的应用程序使用GTasks API。要做到这一点,用户必须有一个谷歌帐户。我有两种方法可以检查:
然后,我必须将我的应用程序与GTask同步。 根据从webview中提取的信息,我尝试使用AccountManager创建一个“com.google”帐户,但我总是有错误“来电者UID不同......”。我知道问题应该来自“account-authenticator”,因为“accountType”必须在XML文件和应用程序中相同,但我认为情况并非如此,因为当我使用不同的帐户类型时,它完全有效(但我无法从GTask获得authToken)。
所以,这是我的代码:
Authenticator.xml:
<account-authenticator xmlns:android="http://schemas.android.com/apk/res/android"
android:accountType="com.google"
android:icon="@drawable/miniicon"
android:smallIcon="@drawable/miniicon"
android:label="@string/app_name"
android:accountPreferences="@xml/preferences"
/>
帐户类型的定义:
public class AuthenticationService extends Service {
public static final String ACCOUNT_TYPE = "com.google";
我如何在课堂上使用它:
AccountManager manager = AccountManager.get(activity);
final Account account = new Account(login, AuthenticationService.ACCOUNT_TYPE);
manager.addAccountExplicitly(account, password, new Bundle());
当我使用“com.plop”或其他东西而不是“com.google”时,它的效果非常好。
所以,我的两个问题是: 1.我可以使用“com.google”帐户类型吗? 2.使用“com.google”以外的其他内容无法获取我的authToken这是正常的(知道所使用的帐户仍然是Google帐户,它只是在Android上没有这样设置)?
请提前获取您的帮助,如果答案在网站上,请原谅我!
答案 0 :(得分:2)
我回答了自己的问题:这不可能是我想要的方式。您必须使用“com.google”帐户类型使用“addAccount”功能。这将导致弹出android系统使用的帐户创建活动。然后,使用GTasks API一切都很好。