我尝试使用使用Google+登录的新Android M权限更新我的应用,但是当我执行checkSelfPermission(Manifest.permission.GET_ACCOUNTS)
弹出的对话框显示"允许MyApp访问您的联系人?&#34 ;使用拒绝和允许按钮。
对于GET_ACCOUNTS权限,这似乎有些奇怪。不应该说与访问您的帐户相关的内容吗?这是一个错误吗?或者我应该做些不同的事情?
答案 0 :(得分:4)
GET_ACCOUNTS权限是android.permission-group.CONTACTS组的一部分,以及
这就是您收到CONTACTS消息的原因。
因此,当您在组中要求一个权限时,您将获得该组中的所有权限。 您可以在Android M here
中找到有关权限的更多信息答案 1 :(得分:4)
我建议您远离Google+登录信息并使用新的Google登录信息。它不需要特殊权限来访问电子邮件,并且可以轻松集成。
https://developers.google.com/identity/sign-in/android/start
答案 2 :(得分:-1)
我今天下午更新了一个客户端应用,允许用户使用Google+登录。您可能不需要在运行时检查GET_ACCOUNTS权限。我更新了清单,以使用android:maxSdkVersion="22"
限定GET_ACCOUNTS权限。
在运行Marshmallow的Nexus 5上,我能够使用Google+成功登录,而不显示运行时权限对话框。联系人也不会出现在设置>应用> [我的客户的应用]>权限中。
<uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" android:maxSdkVersion="22"/>
<uses-permission android:name="android.permission.GET_ACCOUNTS" android:maxSdkVersion="22"/>
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS" android:maxSdkVersion="22"/>
<uses-permission android:name="android.permission.USE_CREDENTIALS" android:maxSdkVersion="22"/>
{* 3}}描述了反映Marshmallow行为变化的GET_ACCOUNTS文档。