美文网首页
Android 6.0运行时权限处理

Android 6.0运行时权限处理

作者: Gunter1993 | 来源:发表于2017-06-14 16:32 被阅读33次

    6.0前后权限处理的变化

    • Before:安装时处理权限
    • After:运行时根据需求请求权限(只针对隐私权限)
      </br>

    权限处理

    // ------------------------------------- 检查权限 -------------------------------------
    if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.RECORD_AUDIO)) {
        // 已经授权
    } else {
        // 未授权
    }
    
    // ------------------------------------- 请求权限 -------------------------------------
    // 调用后弹出系统权限处理窗口,由用户决定是否授权
    // 拒绝授权并选了“不再询问”后以后调用requestPermissions则不会弹出窗口
    ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.RECORD_AUDIO}, REQUEST_CODE); 
    
    // ------------------------------------- 请求回调 ------------------------------------
    /**
     * 参数1:requestCode-->是requestPermissions()方法传递过来的请求码。
     * 参数2:permissions-->是requestPermissions()方法传递过来的需要申请权限
     * 参数3:grantResults-->是申请权限后,系统返回的结果,PackageManager.PERMISSION_GRANTED表示授权成功,PackageManager.PERMISSION_DENIED表示授权失败。
     * grantResults和permissions是一一对应的
     */
    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
    }
    
    // ------------------------------------- 权限解释 ------------------------------------
    // 仅仅一种情况下为true,就是当用户没有完全拒绝的时候(拒绝了但没选“不再询问”)
    ActivityCompat.shouldShowRequestPermissionRationale(MainActivity.this, Manifest.permission.RECORD_AUDIO)
    

    </br>

    使用Rxjava处理权限的开源项目:RxPermissions

    相关文章

      网友评论

          本文标题:Android 6.0运行时权限处理

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