GoogleAccountCredential.setSelectedAccountName(String) 未经联系人许可无法在 Android 6.0 上运行

GoogleAccountCredential.setSelectedAccountName(String) not working on Android 6.0 without Contacts permission

我正在使用以下方法检索 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) 需要联系人权限?是错误还是功能?

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

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