从Android O开始,即使获得GET_ACCOUNTS权限,AccountManager#getAccounts()
也无效。访问帐户的一种方法是使用newChooseAccountIntent()
让用户选择帐户。但它使UI非常差。
我找到的第二个选项是使用GoogleAuthUtil#requestGoogleAccountsAccess()
并让用户将Google帐户的访问权限授予我的应用。成功获得权限后,我的应用程序可以像以前一样在Android O中工作。所以它看起来像另一个运行时权限。
但是这里出现了一个大问题:我无法取消(逆转)GoogleAuthUtil#requestGoogleAccountsAccess()
所做的行动。我认为卸载我的应用程序就像运行时权限一样,但它不会。所以现在我无法再次测试流量,因为GoogleAuthUtil#requestGoogleAccountsAccess()
只返回true,我无法打开一个对话框,要求用户授予对帐户的访问权限。
它在Google支持网站中提到。您可以按照以下步骤删除访问权限。
删除网站或应用访问权限
如果您为自己不再信任的网站或应用授予帐户访问权限,则可以取消对Google帐户的访问权限。该网站或应用将无法再从您的Google帐户访问任何信息,但您可能需要请求他们删除已有的数据。
资料来源:https://support.google.com/accounts/answer/3466521?hl=en