API23运行时获取权限通用代码

下面是完整的运行时权限申请的代码:

private static final int REQUEST_CODE_PERMISSION=0x112;
    private void initPermission() {
        int flag= ActivityCompat.checkSelfPermission(this, Manifest.permission.CAMERA);
        if(PackageManager.PERMISSION_GRANTED!=flag){
            ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.CAMERA}, REQUEST_CODE_PERMISSION);
        }else{
            alterImageNew();
        }
    }
    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        if (REQUEST_CODE_PERMISSION==requestCode){
            switch (grantResults[0]){
                case PackageManager.PERMISSION_DENIED:
                    boolean isSecondRequest=ActivityCompat.shouldShowRequestPermissionRationale(this,Manifest.permission.CAMERA);
                    if(isSecondRequest)
                        ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.CAMERA},REQUEST_CODE_PERMISSION);
                    else
                        Toast.makeText(this, "拍照权限被禁用,请在权限管理修改", Toast.LENGTH_SHORT).show();
                    break;
                case PackageManager.PERMISSION_GRANTED:
                    alterImageNew();
                    break;
            }
        }
    }


如果需要显示类似于上面图片显示的Toast提示,开发者需要在onRequestPermissionResult回调方法中,打印拍照权限被禁用,请在权限管理修改这句话,在使用API 23应用程序编程接口开发的APP中都可以反复复制上面代码,仅将CAMERA替换成定义的权限参数,将alterImageNew()替换成拥有权限后要执行的代码。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值