Dies ist die traditionelle Art und Weise Token zu erhalten, aus GoogleApiClient in Google+ Anmeldung verwendet:Beziehen Google-Konto-Token von GoogleApiClient ohne GET_ACCOUNTS Erlaubnis
String token = GoogleAuthUtil.getToken(apiClient.getContext(), getAccountNameFromGoogle(apiClient), SCOPE);
jedoch GetAccountNameFromGoogle
Methode erfordert android.permission.GET_ACCOUNTS
Erlaubnis und in Android M Developer Preview 3, diese Berechtigung ist jetzt als gefährlich gekennzeichnet und in Kontaktgruppe gruppiert. Das heißt, wenn jemand sich in meine App einloggen möchte, muss er meiner App volle Zugriffsrechte gewähren, was ein wenig übertrieben ist.
Gibt es eine Möglichkeit, dies ohne GET_ACCOUNTS
Erlaubnis zu erreichen?
Eine mögliche Antwort, die ich fand ist Kontoname von AccountPicker erhalten, aber das zwingt Benutzer, sein Konto es zweimal auszuwählen (einmal für Google Plus-Authentifizierung und einmal für AccountPicker), die auch nicht sehr freundliche Lösung ist.
Ich versuchte, die G + signin Taste [hier] (https://github.com/googlesamples/google-services/tree/master/android/signin) und erfolgreiche signin zu verwenden ohne die 'android.permission.GET_ACCOUNTS' Erlaubnis zu benutzen. Ich habe festgestellt, dass es auf Lollipop funktioniert und ein Problem mit M preview 3 beim Ausführen von 'Plus.PeopleApi.getCurrentPerson (mGoogleApiClient) .getDisplayName();', es wird Nullzeiger erhalten. Ich habe das Problem [hier] gemeldet (https://github.com/googlesamples/google-services/issues/25). – bjiang
Ja, ich verwende dieses Zeichen bereits. Allerdings können Sie damit nur APIs in den Wiedergabediensten verwenden. Wenn Sie Token an den Server weiterleiten oder auf anderen APIs außerhalb der Abspieldienste verwenden möchten, müssen Sie das Token abrufen. –