Это традиционный способ получить токен от GoogleApiClient, используемый при входе в Google+:
String token = GoogleAuthUtil.getToken(apiClient.getContext(), getAccountNameFromGoogle(apiClient), SCOPE);
Однако метод GetAccountNameFromGoogle
требует разрешения android.permission.GET_ACCOUNTS
, и в Android M Developer Preview 3 это разрешение теперь помечено как опасное и сгруппировано в группу контактов. Это означает, что если кто-то хочет войти в мое приложение, ему нужно предоставить моему приложению полные разрешения на контакты, что немного излишне.
Есть ли способ добиться этого без разрешения GET_ACCOUNTS
?
Один из потенциальных ответов, который я нашел, — получение имени учетной записи из AccountPicker, но это заставляет пользователя выбирать свою учетную запись дважды (один раз для аутентификации Google Plus и один раз для AccountPicker), что также не очень удобно.
android.permission.GET_ACCOUNTS
. Я обнаружил, что он работает на Lollipop и имеет проблему с предварительным просмотром M 3 при запуске вPlus.PeopleApi.getCurrentPerson(mGoogleApiClient).getDisplayName();
, он получает нулевой указатель. Я сообщил о проблеме здесь. - person bjiang   schedule 28.08.2015