Начиная с Android O, AccountManager#getAccounts()
не будет работать, даже если разрешение GET_ACCOUNTS предоставлено.Одним из способов доступа к учетным записям является использование newChooseAccountIntent()
, чтобы позволить пользователю выбрать учетную запись.Но из-за этого пользовательский интерфейс становится очень плохим.
2-й вариант, который я обнаружил, - это использование GoogleAuthUtil#requestGoogleAccountsAccess()
и предоставление пользователю права доступа к учетным записям Google для моего приложения.После успешного получения прав на это мое приложение могло работать точно так же, как раньше в Android O. Так что это похоже на другое разрешение во время выполнения.
Но здесь возникает большая проблема: я не могу отменить (отменить) выполненное действиена GoogleAuthUtil#requestGoogleAccountsAccess()
.Я думал, что удаление моего приложения делает это как разрешение во время выполнения, но это не так.Так что теперь я не могу снова протестировать поток, поскольку GoogleAuthUtil#requestGoogleAccountsAccess()
просто возвращает true, и у меня нет возможности открыть диалоговое окно, чтобы попросить пользователя предоставить доступ к учетным записям.