项目中有一个选择系统联系人的需求。
刚开始没有做动态的权限申请,是可以进入系统联系人列表的,并且显示联系人的信息(姓名、电话等),但是点击选择之后就会报错,java.lang.SecurityException: Permission Denial: reading com.android.providers.contacts.ContactsProvider2 uri content://com.android.contacts/data/phones from pid=6185, uid=10334 requires android.permission.READ_CONTACTS, or grantUriPermission(),,权限拒绝了
所以,添加了添加动态权限,把手机的后台应用管理的联系人打开权限
这样也是没有用的,没有申请权限的过程,直接为false,和弹出“请同意选择联系人权限”这话, 还必须在权限文件中声明
<!-- 读取联系人权限 --> <uses-permission android:name="android.permission.READ_CONTACTS" />
但是有一点,不明白,我没有在权限文件中添加读取联系人的权限,甚至没有在代码为动态申请,为什么在手机的后台管理的权限管理界面会有读取联系人的选项,我还能打开或关闭,这里有点搞不懂!