美文网首页
Caused by: java.lang.SecurityExc

Caused by: java.lang.SecurityExc

作者: 蘑菇v5 | 来源:发表于2018-01-18 11:26 被阅读181次

    【声明:】本文是作者(蘑菇v5)原创,版权归作者 蘑菇v5所有,侵权必究。本文首发在简书。如若转发,请注明作者和来源地址!未经授权,严禁私自转载!

    原因:

    使用Android Studio编译项目的时候将app/build.gradle中的 defaultConfig 设置中的targetSdkVersion设置为了23或则大于23的数值, 这样 Android Studio在编译的时候会使用 Android 23 APIAndroid 6.0来编译项目,但是,如果你没有给项目加上动态权限请求的话,你的应用在安装到手机的时候将不会获取任何权限。可以去查看应用的应用信息,其中的Permissions权限列表中所有的权限组都是关闭状态。

    解决办法:

    如果你需要紧急避免自己的应用继续在Android 6.0的系统上崩溃,可以将app/build.gradle中的targetSdkVersioncompileSdkVersion设置为22或以下版本,这样的话,编译出来的app会在Android 6.0上以兼容模式运行,可以获取需要的权限,但随着Android 6.0的普及,我还是推荐大家尽量给项目加上动态权限时的判断以及逻辑处理。

    前提:应用在android6.0和以上的设备中

    具体解决流程:

    第一步:在清单配置文件中,添加如下权限:
    
    <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
    
    第二步:android6.0动态申请权限,在代码中动态添加权限:
            int permissionCheck = ContextCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE);
    
            if (permissionCheck != PackageManager.PERMISSION_GRANTED) {
                ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_PHONE_STATE}, REQUEST_READ_PHONE_STATE);
            } else {
                //TODO
            }
    
    第二步:处理相关请求的回调方法(实现onRequestPermissionsResult接口 )
    @Override
    public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
        switch (requestCode) {
            case REQUEST_READ_PHONE_STATE:
                if ((grantResults.length > 0) && (grantResults[0] == PackageManager.PERMISSION_GRANTED)) {
                    //TODO
                }
                break;
    
            default:
                break;
        }
    }
    

    参考链接:
    http://stackoverflow.com/questions/33078003/android-6-0-permission-error
    http://stackoverflow.com/questions/32742327/neither-user-10102-nor-current-process-has-android-permission-read-phone-state

    相关文章

      网友评论

          本文标题:Caused by: java.lang.SecurityExc

          本文链接:https://www.haomeiwen.com/subject/wbwioxtx.html