Разработка приложений для Android: как получить учетные данные учетной записи Google Gmail для автоматической отправки электронной почты?

Я пытаюсь создать приложение, которое использует учетную запись Gmail для автоматической отправки электронных писем.

Я не хочу, чтобы пользователь вводил имя пользователя и пароль, если он уже добавил учетную запись Gmail на свое устройство Android, но я хочу, чтобы приложение использовало эту учетную запись для автоматической отправки электронной почты.

Я уже знаю, как получить имя пользователя и пароль, но когда я спрашиваю пароль, я получаю следующую ошибку:

02-14 10:53:40.660: E/AndroidRuntime(23719): Caused by: java.lang.SecurityException: caller uid xxxxx is different than the authenticator's uid

Где xxxxx — номер UID. Мой код таков:

 AccountManager manager = AccountManager.get(this);
 Account[] accounts = manager.getAccountsByType("com.google");
 for (Account account : accounts){
   if(account.name.endsWith("gmail.com")){
      String gmailAddress = account.name;
      String password = manager.getPassword(account);
   }
 }

Пожалуйста, дайте мой пример кода или ссылку, чтобы прочитать его. Не давайте мне больше ничего. Многие спасибо


person Meroelyth    schedule 14.02.2012    source источник


Ответы (2)


получение учетных данных учетной записи Google возможно только в том случае, если вы используете один и тот же UID, что невозможно, когда вы пишете собственное приложение. Я думаю, вам нужно использовать AuthToken, который создается, когда пользователь регистрирует учетную запись в телефоне. Вы можете обменять токен Auth с помощью токен доступа для автоматической отправки почты.

person RanjitRock    schedule 14.02.2012

Вы должны включить

<uses-permission android:name="android.permission.GET_ACCOUNTS" />

разрешение на ваш AndroidManifest.xml

person tasomaniac    schedule 07.09.2013