java.lang.SecurityException: Permission Denial:错误解决办法
2016-08-23 22:25
706 查看
在SDK23也就是Android6.0.1里编写调用系统通讯录读写权限的程序,在AndroidManifest.xml中,已经配置了
但是运行中仍然出现异常,如下所示:
java.lang.SecurityException: Permission Denial: opening provider com.android.providers.contacts.ContactsProvider2 from ProcessRecord (pid=28104, uid=10176) requires android.permission.READ_CONTACTS or android.permission.WRITE_CONTACTS
原因是SDK23对应用程序权限做出了改动,有两种解决办法:
①使用SDK22开发,并且运行此程序的android虚拟机或者是手机的系统6.0以下。
②使用ContentResolver之前,加入如下代码,进行权限校验。
首先进行REQUESTCode:REQUEST_CODE_ASK_PERMISSONS常量的声明。
然后再调用ContentResolver之前,进行权限校验
在小米手机上,运行结果:
<uses-permission android:name="android.permission.READ_CONTACTS"/> <uses-permission android:name="android.permission.WRITE_CONTACTS"/>
但是运行中仍然出现异常,如下所示:
java.lang.SecurityException: Permission Denial: opening provider com.android.providers.contacts.ContactsProvider2 from ProcessRecord (pid=28104, uid=10176) requires android.permission.READ_CONTACTS or android.permission.WRITE_CONTACTS
原因是SDK23对应用程序权限做出了改动,有两种解决办法:
①使用SDK22开发,并且运行此程序的android虚拟机或者是手机的系统6.0以下。
②使用ContentResolver之前,加入如下代码,进行权限校验。
首先进行REQUESTCode:REQUEST_CODE_ASK_PERMISSONS常量的声明。
final private int REQUEST_CODE_ASK_PERMISSIONS = 123;
然后再调用ContentResolver之前,进行权限校验
int hasWriteContactsPermisson = checkSelfPermission( android.Manifest.permission.READ_CONTACTS); if(hasWriteContactsPermisson != PackageManager.PERMISSION_GRANTED) { requestPermissions(new String[] {Manifest.permission.WRITE_CONTACTS}, REQUEST_CODE_ASK_PERMISSIONS); return; } //使用ContentResolver查找联系人数据 Cursor cursor = getContentResolver().query( ContactsContract.Contacts.CONTENT_URI, null,null,null,null);
在小米手机上,运行结果:
相关文章推荐
- Android:java.lang.SecurityException: Permission Denial解决办法
- ContentProvier使用时:java.lang.SecurityException: Permission Denial:XXX解决办法
- android content provider java.lang.SecurityException: Permission Denial异常解决
- 关于Uri的java.lang.SecurityException: Permission Denial错误、(Android权限Uri.parse的详细资料)
- java.lang.SecurityException: Permission Denial: opening provider的解决方法
- 关于Android抛出java.lang.SecurityException: Permission Denial的错误
- ContentProvider【java.lang.SecurityException: Permission Denial】异常解决
- java.lang.SecurityException: META-INF/XX.SF has invalid digest 解决办法
- Android开发中java.lang.RuntimeException: Unable to start activity ComponentInfo{xxx}: java.lang.NullPointerException 错误的集中原因及解决办法
- Eclipse 报 “Exception in thread "main" java.lang.OutOfMemoryError: Java heap space ”错误的解决办法
- Android java.lang.SecurityException: Permission Denial: requires android.permission.CALL_PRIVILEGED
- Eclipse 报 “Exception in thread "main" java.lang.OutOfMemoryError: Java heap space ”错误的解决办法以及文本文件换行
- <Gradle> java.lang.SecurityException的解决办法
- hibernate 中createSQLQuery 聚合分组 java.lang.NumberFormatException: For input string:错误的一个解决办法
- java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver 错误的解决办法
- java.lang.NumberFormatException 错误及解决办法
- java.lang.SecurityException解决办法
- Android开发中java.lang.RuntimeException:错误的集中原因及解决办法
- java.lang.IllegalArgumentException: Can't convert argument: null错误原因及解决办法
- Caused by: java.lang.SecurityException: Permission Denial: reading com.androi...