在没有GET_ACCOUNTS权限的情况下从GoogleApiClient获取Google帐户令牌

时间:2015-08-27 14:14:01

标签: android google-plus google-play-services google-login

这是从Google+登录中使用的GoogleApiClient获取令牌的传统方式:

String token = GoogleAuthUtil.getToken(apiClient.getContext(), getAccountNameFromGoogle(apiClient), SCOPE);

但是,GetAccountNameFromGoogle方法需要android.permission.GET_ACCOUNTS权限,而在Android M开发人员预览版3中,此权限现在标记为危险并分组为联系人组。这意味着如果有人想登录我的应用程序,他需要授予我的应用程序完整的联系人权限,这有点矫枉过正。

有没有办法在没有GET_ACCOUNTS权限的情况下实现这一目标?

我找到的一个可能的答案是从AccountPicker获取帐户名称,但这迫使用户选择他的帐户两次(一次用于Google Plus身份验证,一次用于AccountPicker),这也不是非常友好的解决方案。

1 个答案:

答案 0 :(得分:0)

所以这就是我最终解决它的方法:

我彻底抛弃GoogleApiClient并切换到while ( !feof (fp) ) is bad。它并不完美,但我仍然可以使用GoogleApiClient的所有功能,尽管不是那么毫不费力。

Google的指南:AccountPicker