Я добавляющие поддержку Google Drive, чтобы мое приложение, используя v3 REST API, как описано здесь: https://developers.google.com/drive/v3/web/quickstart/androidОбход GoogleAccountCredential.RequestHandler с использованием устаревших методов
Точно такая же проблема возникает в Gmail API: https://developers.google.com/gmail/api/quickstart/android
Я использую GoogleAccountCredential, как описано здесь. Он получает включен через мой Gradle:
compile('com.google.api-client:google-api-client-android:1.22.0') {
exclude group: 'org.apache.httpcomponents'
}
Однако, есть проблема с его вложенным классом GoogleAccountCredential.RequestHandler В методе handleResponse это вызывает GoogleAuthUtil.invalidateToken (контекст, маркер); которая характеризуется устаревшим, поскольку он требует разрешений MANAGE_ACCOUNTS и USE_CREDENTIALS, как указано здесь: GoogleAuthUtil.invalidateToken
Это проявляется, когда я использую веб-интерфейс Google, чтобы отключить приложение от Drive и попытаться повторной аутентификации с использованием приведенного выше примера Quickstart. Затем это вызывает java.lang.SecurityException: у вызывающего uid отсутствует какой-либо из android.permission.MANAGE_ACCOUNTS, android.permission.USE_CREDENTIALS (как и ожидалось).
Я мог бы, конечно, добавить эти разрешения в свое приложение, но я бы предпочел. Диспетчер Android Studio SDK не показывает новых обновлений для связанных библиотек.
Любая работа вокруг, за исключением использования PlayServices и вместо этого непосредственно с помощью GoogleAuthUtil?
У меня была такая же проблема с gmail api, и она была решена так же, как и вы. Не могли бы вы принять свой собственный ответ? возможно, это может помочь кому-то в далеком будущем, как это было в ближайшем – nandsito