001 关于Android6.0以上部分权限的单个动态申请

本文介绍如何在Android6.0及以上版本中为应用程序动态申请读取SD卡权限,并提供了一个具体的代码示例。此外,还强调了需要在AndroidManifest.xml文件中注册所需权限。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

普通权限暂且不表,下面只列举Android6.0以后必须进行动态申请的权限。

下面以SD卡读取权限作为例子(如果实在不懂的话可以直接复制粘贴,只需要改一下权限的名称即可):

/**
     * 请求授权
     */
    private void requestPermission(){
        if (Build.VERSION.SDK_INT >= 23) {
            int checkCallPhonePermission = ContextCompat.checkSelfPermission
                    (this, Manifest.permission.READ_EXTERNAL_STORAGE);
            if (checkCallPhonePermission != PackageManager.PERMISSION_GRANTED) {
                //在String[]中传入需要申请的权限
                ActivityCompat.requestPermissions(this,
                        new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, 1);
            }
            else{
                //sendHomework();
                //已经拥有了权限
                Toast.makeText(this,"已经获取读SD卡权限",Toast.LENGTH_SHORT).show();
            }
        }
        else {

            //低版本
            Toast.makeText(this,"已经获取读SD卡权限",Toast.LENGTH_SHORT).show();
        }
    }
    @Override
    public void onRequestPermissionsResult(int requestCode, String[] permissions,int[] grantResults) {
        switch (requestCode) {
            case 1:
                if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                    //sendHomework();
                    //获取权限成功后的处理
                    Toast.makeText(this,"已经成功获取读SD卡权限",Toast.LENGTH_SHORT).show();
                }
                else {
                    //showToast("fail");
                    //获取权限失败的处理
                    Toast.makeText(this,"获取读SD卡权限失败",Toast.LENGTH_SHORT).show();
                }
                break;
            default:
                super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        }
    }

对于新手来说,需要注意的是,如果你想要使用这个动态权限,除了上面这段代码之外,你还需要在项目的Manifest中注册你想要获取的权限(一般来说,只要不是危险权限,无论Android6.0前后,只要注册之后就可以直接使用了,但是危险权限,除了注册之外还需要手动的动态申请)。

另外,除了上面这段代码和注册之外,还需要在初始化之前在MainActivity中写上

requestPermission()

来调用下面写的动态申请。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值