博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一个util带你解决动态申请权限问题
阅读量:6031 次
发布时间:2019-06-20

本文共 1777 字,大约阅读时间需要 5 分钟。

前言

Android从API23开始, 也就是Android6.0起, 有了一个动态申请权限的概念. 这里就分享给大家一个util来解决这个问题. 不过在代码之前我还有些要说的:

第一次安装应用进入之后会要权限. 一般来说, 这个要权限都会在广告页之后, 进主页面之前, 因为如果不在进入之前拿到权限, 肯定有些功能就跑不动了, 仔细看图片后面的界面, 只显示了根路径, 下面为空. 那再给一张点击了allow重进的图片:


使用

直接上代码:

public class PermissionsUtil {    // 读写权限    private static final int REQUEST_EXTERNAL_STORAGE = 1;    private static String[] PERMISSIONS_STORAGE = {            Manifest.permission.READ_EXTERNAL_STORAGE,            Manifest.permission.WRITE_EXTERNAL_STORAGE};    /**     * 检查应用程序是否有权写入设备存储     * 如果应用程序没有权限,则会提示用户授予权限     *     * @param activity 所在的Activity     */    public static void verifyStoragePermissions(Activity activity) {        // 检查应用程序是否有权写入设备存储        int permission = ActivityCompat.checkSelfPermission(activity,                Manifest.permission.WRITE_EXTERNAL_STORAGE);        if (permission != PackageManager.PERMISSION_GRANTED) {            // 如果应用程序没有权限,则会提示用户授予权限            ActivityCompat.requestPermissions(activity, PERMISSIONS_STORAGE,                    REQUEST_EXTERNAL_STORAGE);        }    }}复制代码

然后在前言说的位置:

verifyStoragePermissions(this);复制代码
/** * @param requestCode  请求码 * @param permissions  权限 * @param grantResults 授予结果 */@Overridepublic void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {    switch (requestCode) {        case 1:            if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {                LogUtil.i(getResources().getString(R.string.succeed));            } else {                Toast.makeText(this, getResources().getString(R.string.failed), Toast.LENGTH_LONG).show();                finish();            }            break;        default:    }}复制代码

当然了, 基础的权限申请别忘了, 在AndroidManifest.xml

复制代码

转载地址:http://hldhx.baihongyu.com/

你可能感兴趣的文章
Linux下arp用法
查看>>
表单文件上传与文件下载
查看>>
jquery 中prop()的使用方法
查看>>
下午考
查看>>
WKWebView
查看>>
创建字符设备的三种方法
查看>>
走在网页游戏开发的路上(六)
查看>>
nginx 配置的server_name参数(转)
查看>>
Uva592 Island of Logic
查看>>
C++基础代码--20余种数据结构和算法的实现
查看>>
footer固定在页面底部的实现方法总结
查看>>
nginx上传文件大小
查看>>
数字通信原理笔记(一)---概述
查看>>
HDU 2243 考研路茫茫——单词情结(自动机)
查看>>
Dubbo OPS工具——dubbo-admin & dubbo-monitor
查看>>
如何将OpenCV中的Mat类绑定为OpenGL中的纹理
查看>>
CutyCapt
查看>>
Dungeon Master ZOJ 1940【优先队列+广搜】
查看>>
解决https://localhost:1158/em 页面无法打开的问题
查看>>
[Cocoa]深入浅出Cocoa之Core Data(4)- 使用绑定
查看>>