Неверное сообщение с разрешением 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, отражающая изменение поведения зефира, описана здесь.