Неверное сообщение с разрешением GET_ACCOUNTS

Я пытаюсь обновить мое приложение новыми разрешениями Android M, которые используют логин Google+, но когда я делаю checkSelfPermission(Manifest.permission.GET_ACCOUNTS) всплывающее диалоговое окно говорит: "Разрешить MyApp доступ к вашим контактам?" с кнопками Запретить и Разрешить.

Это кажется странным для разрешения GET_ACCOUNTS. Разве это не должно сказать что-то, связанное с доступом к вашим аккаунтам вместо этого? Это ошибка? Или я должен делать что-то по-другому?

3 ответа

Разрешение GET_ACCOUNTS является частью группы android.permission-group.CONTACTS вместе с

  • android.permission.READ_CONTACTS
  • android.permission.WRITE_CONTACTS
  • android.permission.GET_ACCOUNTS

Вот почему вы получаете сообщение для КОНТАКТОВ.

Поэтому, когда вы попросите одно разрешение в группе, вы получите все из них в этой группе. Вы можете найти больше информации о разрешении в Android M здесь

Я бы порекомендовал отойти от входа в Google+ и использовать новый вход в Google. Он не требует специальных разрешений для доступа к электронной почте и может быть легко интегрирован.

https://developers.google.com/identity/sign-in/android/start

Сегодня днем ​​я обновлял клиентское приложение, которое позволяет пользователям заходить в Google+. Возможно, вам не нужно проверять разрешение GET_ACCOUNTS во время выполнения. Я обновил манифест, чтобы квалифицировать разрешение GET_ACCOUNTS с помощью android:maxSdkVersion="22",

На Nexus 5 под управлением Marshmallow я смог успешно войти в систему с помощью Google+ без отображения диалогового окна с правами доступа. Контакты также не отображаются в Настройки> Приложения>[приложение моего клиента]> Разрешения.

<uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" android:maxSdkVersion="22"/>
<uses-permission android:name="android.permission.GET_ACCOUNTS" android:maxSdkVersion="22"/>
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS" android:maxSdkVersion="22"/>
<uses-permission android:name="android.permission.USE_CREDENTIALS" android:maxSdkVersion="22"/>

Документация для GET_ACCOUNTS, отражающая изменение поведения зефира, описана здесь.

Другие вопросы по тегам