这是从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),这也不是非常友好的解决方案。
答案 0 :(得分:0)
所以这就是我最终解决它的方法:
我彻底抛弃GoogleApiClient
并切换到while ( !feof (fp) )
is bad。它并不完美,但我仍然可以使用GoogleApiClient
的所有功能,尽管不是那么毫不费力。
Google的指南:AccountPicker