1

我正在尝试在我的应用程序中添加功能,通过使用方法将谷歌帐户添加到 Android 帐户管理器
mAccountManager = AccountManager.get(getBaseApplicationContext());
Account account = new Account("sample.account", "com.google");
ac.addAccountExplicitly(account, "password", null);
但它表示异常

java.lang.SecurityException: caller uid 10117 is different than the authenticator 的 uid


是否可以在应用程序代码中添加帐户(更精确地登录到现有的谷歌帐户)?我应该使用哪种方法?

4

1 回答 1

1

您需要使用与帐户类型相同的 UID,但您不能使用包(它被翻译成 UID)“com.google”为您的应用程序签名。

您可以使用以下方式获取可用帐户:

manager.getAccountsByType("com.google"); // returns array

或者使用 API 级别 14,您可以调用:

AccountManager.newChooseAccountsIntent(null, null, new String[]{"com.google"}, false, null, null, null, null);

如果您想在早期版本中使用它,您可以获取源代码并在您的项目中实现相同的机制。

添加 Google 帐户的唯一选择是获取发送登录活动时发送的意图,并尝试发送相同的意图以要求用户输入帐户。进入后,您可以使用我提到的方法获取详细信息。

于 2011-12-02T18:44:26.533 回答