Добавление в приложение аккаунта Google с помощью AccountManager

Я пытаюсь добавить в свое приложение функциональность, которая добавляет учетную запись Google в диспетчер учетных записей Android с помощью метода
mAccountManager = AccountManager.get(getBaseApplicationContext());
Account account = new Account("sample.account", "com.google");
ac.addAccountExplicitly(account, "password", null);
Но это указывает на исключение

java.lang.SecurityException: uid вызывающего абонента 10117 отличается от uid аутентификатора


Можно ли добавить учетную запись в код приложения (точнее, войти в уже существующую учетную запись google)? Какой метод следует использовать?


person Michal    schedule 07.09.2011    source источник


Ответы (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 — получить намерения, которые отправляются при отправке действия входа, и попытаться отправить то же самое намерение, чтобы попросить пользователя ввести учетную запись. Оказавшись внутри, вы можете получить детали с помощью метода, который я упомянул.

person pablisco    schedule 02.12.2011