GoogleAccountCredential.setSelectedAccountName(String)在没有“联系人”权限的Android 6.0上无效

时间:2015-10-22 03:32:46

标签: android oauth-2.0 google-oauth android-permissions android-6.0-marshmallow

我正在使用以下方法检索GoogleAccountCredential对象:

GoogleAccountCredential credential = GoogleAccountCredential.usingOAuth2(
                context, Arrays.asList({ GmailScopes.MAIL_GOOGLE_COM }))
                .setBackOff(new ExponentialBackOff())
                .setSelectedAccountName(email)

电子邮件是我在设备上使用的Gmail帐户。

如果我使用credential.getSelectedAccountName检索帐户名,则结果为空。

这仅在运行Android Marshmallow的设备上发生,并且仅在应用程序没有“联系人”权限时才会发生。一旦我授予“联系人”权限,一切正常。

为什么GoogleAccountCredential.setSelectedAccountName(String)需要“联系”权限?这是一个错误还是一个功能?

1 个答案:

答案 0 :(得分:5)

"联系人权限组"是必需的,因为getselectedaccountname所需的get_account权限分组在联系人下。

根据https://developer.android.com/guide/topics/security/permissions.html#normal-dangerous