侧边栏壁纸
博主头像
ERP_LXKUN_JAK

自然法则,物竞天择,适者生存

  • 累计撰写 7 篇文章
  • 累计创建 1 个标签
  • 累计收到 0 条评论
标签搜索

最简洁的 Android10 动态申请权限获取方法,代码简单,操作简单,亲测有效。

ERP_LXKUN_JAK
2022-08-20 / 2,400 阅读 / 1,274 字
温馨提示:
本文最后更新于 2022-08-20,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

首先第一步,在【AndroidManifest.xml】文件中添加你要申请的权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

然后在application标签下加上这条代码:

android:requestLegacyExternalStorage="true"

【如图所示】
20200827172435856

第二步
在工具类中封装一个方法,代码以及注释如下:

/**
     * 动态申请权限
     * @param context    上下文
     * @param permission 要申请的一个权限,列如写的权限:Manifest.permission.WRITE_EXTERNAL_STORAGE
     * @return  是否有当前权限
     */

    private boolean RequestPermissions(@NonNull Context context, @NonNull String permission) {
        if (ContextCompat.checkSelfPermission(context, permission) != PackageManager.PERMISSION_GRANTED) {
            Log.i("requestMyPermissions",": 【 " + permission + " 】没有授权,申请权限");
            ActivityCompat.requestPermissions((Activity) context, new String[]{permission}, 100);
            return false;
        } else {
            Log.i("requestMyPermissions",": 【 " + permission + " 】有权限");
            return true;
        }
    }

用法很简单,直接调用,填写上下文和对应权限即可【AppTool是我的方法所属的类名】

AppTool.RequestPermissions(MainActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE);
如果你想知道权限的请求状态,也很简单,if…else…判断一下返回值即可

boolean Permissions = AppTool.RequestPermissions(MainActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE);

        if(Permissions){
            Toast.makeText(MainActivity.this,"有这个权限",Toast.LENGTH_LONG).show();
        }else{
            Toast.makeText(MainActivity.this,"无这个权限,发起弹窗请求",Toast.LENGTH_LONG).show();
        }