广告
返回顶部
首页 > 资讯 > 移动开发 >Android权限询问的实例详解
  • 244
分享到

Android权限询问的实例详解

2024-04-02 19:04:59 244人浏览 薄情痞子
摘要

AndroidMaifest.xml中声明权限 <!-- 声明所有需要的权限(包括普通权限和危险权限) --> <uses-permission android:n

AndroidMaifest.xml中声明权限

<!-- 声明所有需要的权限(包括普通权限和危险权限) -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_CONTACTS"/>

直接上代码,放在想要拦截的地方即可 ,一般是程序启动时即访问

private static final int MY_PERMISSION_REQUEST_CODE = 10000;

//第 1 步: 检查是否有相应的权限,
boolean isAllGranted = checkPermissionAllGranted(
    new String[] {
        //根据自己需求,进行添加相应的权限
        Manifest.permission.READ_EXTERNAL_STORAGE,
        Manifest.permission.WRITE_EXTERNAL_STORAGE
    }
);
// 如果权限全都拥有, 则直接初始化日志文件
if (isAllGranted) {
    configureLog4J.configure();//有权限之后要做的事情
    return;
}

//第 2 步: 请求权限
// 一次请求多个权限, 如果其他有权限是已经授予的将会自动忽略掉
ActivityCompat.requestPermissions(
    this,
    new String[] {
        Manifest.permission.READ_EXTERNAL_STORAGE,
        Manifest.permission.WRITE_EXTERNAL_STORAGE
    },
    MY_PERMISSION_REQUEST_CODE
);

//检查是否拥有指定的所有权限
private boolean checkPermissionAllGranted(String[] permissions) {
    for (String permission : permissions) {
        if (ContextCompat.checkSelfPermission(this, permission) != PackageManager.PERMISSION_GRANTED) {
            // 只要有一个权限没有被授予, 则直接返回 false
            return false;
        }
    }
    return true;
}


//第 3 步: 申请权限结果返回处理
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
    super.onRequestPermissionsResult(requestCode, permissions, grantResults);

    if (requestCode == MY_PERMISSION_REQUEST_CODE) {
        boolean isAllGranted = true;

        // 判断是否所有的权限都已经授予了
        for (int grant : grantResults) {
            if (grant != PackageManager.PERMISSION_GRANTED) {
                isAllGranted = false;
                break;
            }
        }

        if (isAllGranted) {
            // 如果所有的权限都授予了, 则初始化日志文件
            configureLog4J.configure();//有权限之后要做的事情

        } else {
            // 弹出对话框告诉用户需要权限的原因, 并引导用户去应用权限管理中手动打开权限按钮
            openAppDetails();
        }
    }
}
//打开 APP 的详情设置
private void openAppDetails() {
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setMessage("该程序需要访问 “外部存储器”,请到 “应用信息 -> 权限” 中授予!");
    builder.setPositiveButton("去手动授权", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            Intent intent = new Intent();
            intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
            intent.addCateGory(Intent.CATEGORY_DEFAULT);
            intent.setData(Uri.parse("package:" + getPackageName()));
            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            intent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
            intent.addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
            startActivity(intent);
        }
    });
    builder.setNegativeButton("取消", null);
    builder.show();
}

到此这篇关于Android权限询问的文章就介绍到这了,更多相关Android权限询问内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Android权限询问的实例详解

本文链接: https://www.lsjlt.com/news/168798.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Android权限询问的实例详解
    AndroidMaifest.xml中声明权限 <!-- 声明所有需要的权限(包括普通权限和危险权限) --> <uses-permission android:n...
    99+
    2022-11-13
  • 详解Android Selinux 权限及问题
    由于现做的是MTK平台,源码路径基于MTK, 不过高通大同小异说明Android 5.0以后完全引入了 SEAndroid/SELinux 安全机制,这样即使拥有 root 权限或 chmod 777 ,仍然无法再JNI以上访问内核节点。其...
    99+
    2023-05-30
    android selinux sel
  • C++中访问权限的示例详解
    众所周知,C++面向对象的三大特性为:封装,继承和多态。下面我们就先对封装做一些简单的了解。封装是通过C++中的类来完成的,类是一种将抽象转换为用户定义类型的工具。类的定义如下: ...
    99+
    2022-11-12
  • Android使用记录访问权限详解
    使用记录访问权限 什么是使用记录访问权限呢?这是在Android5.0(Api level 21)新添加的,通过该权限我们可以查看设备上其它应用使用情况的统计信息等。 如何使用...
    99+
    2022-06-06
    Android
  • Android registerForActivityResult动态申请权限案例详解
    前言 这几天在做一个小工具app,结果在fragment里面动态申请权限提示原有的申请方法已经弃用,还画了很明显的删除线。。。这叫一个强迫症的我怎么受得了。赶紧网上找资料也找不出什么...
    99+
    2022-11-12
  • 详解Android权限管理之RxPermission解决Android 6.0 适配问题
    前言: 上篇重点学习了Android 6.0的运行时权限,今天还是围绕着Android 6.0权限适配来总结学习,这里主要介绍一下我们公司解决Android 6.0权限适配的...
    99+
    2022-06-06
    Android
  • JS递归遍历查询是否有权限示例详解
    目录前言需求分析设计思路代码声明查找模板如下js 版本ts 版本后记前言 最近参与了一个基于 qiankun 构建的微前端大型项目,涉及到十几个子应用,基于基座独立开发了一个完善的权...
    99+
    2022-11-13
  • Android usb设备权限查询及自动获取详解流程
    看到当上面的对话框弹出时,可以使用命令查看顶层的活动窗口 adb shell dumpsys window | findstr mCurrentFocus mCurrentFo...
    99+
    2022-11-12
  • Android获取ROOT权限的实例代码
    获取Android的ROOT权限其实很简单,只要在Runtime下执行命令"su"就可以了。 代码如下:// 获取ROOT权限public void get_root(){&...
    99+
    2022-06-06
    root root权限 Android
  • 关于Android 6.0权限的动态适配详解
    前言Android6.0代号棉花糖。尽管是在15年I/O大会上Google被正式发布的了。但是看看大多数人的项目中大家的 targetSdkVersion 是不是还都用的22。大家都认为6.0+的市场占有率还没那么高。那么就请看谷歌2017...
    99+
    2023-05-30
    android6.0 权限 动态适配
  • SQL权限设置的问题实例分析
    这篇文章主要讲解了“SQL权限设置的问题实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SQL权限设置的问题实例分析”吧! 第一个是对于一个用户的操...
    99+
    2022-10-19
  • Android usb设备权限查询及自动获取的示例分析
    这篇文章主要介绍Android usb设备权限查询及自动获取的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!看到当上面的对话框弹出时,可以使用命令查看顶层的活动窗口adb shell du...
    99+
    2023-06-25
  • Android ProgressDialog的实例详解
    Android ProgressDialog的实例详解当自己做一些耗时操作时,希望给用户一些提示信息,告诉用户正在进行耗时操作,这时就可以用到ProgressDialog。1.新建一个全局变量ProgressDialogprivate Pr...
    99+
    2023-05-30
    android progressdialog gr
  • Android实现有道辞典查询功能实例详解
    本文实例讲述了Android实现有道辞典查询功能的方法。分享给大家供大家参考,具体如下: 这是我做的一个简单的有道Android的DEMO,只是简单的雏形。界面设计也有点丑陋呵...
    99+
    2022-06-06
    有道 Android
  • SpringBoot整合Security实现权限控制框架(案例详解)
    目录一、前言二、环境准备2.1、数据库表2.2、导入依赖2.3、配置文件2.4、WebSecurityConfig Security的主要配置类:2.5、Security身份验证2....
    99+
    2022-11-12
  • Android ViewFlipper的详解及实例
    Android ViewFlipper的详解前言:View Flipper,是ViewAnimator的子类,而ViewAnimator又是继承自FrameLayout,而FrameLayout就是平时基本上只显示一个子视图的布局,由于Fr...
    99+
    2023-05-30
    android viewflipper pp
  • Android之ImageSwitcher的实例详解
    Android之ImageSwitcher的实例详解一. 简单示例实例代码:public class AndroidUIActivity extends Activity { // 当前显示的图片索引 private int in...
    99+
    2023-05-30
    android imageswitcher age
  • Android WebView的详解及实例
    Android WebView的详解      Android WebView在android平台上是一个特殊的View, 他能用来显示网页,这个类可以被用来在你的app中仅仅显示一张在线的...
    99+
    2023-05-30
    android webview roi
  • Android判断是否有拍照权限的实例代码
    下面一段代码给大家介绍android判断是否有拍照权限,具体代码如下所示:public boolean cameraIsCanUse() { boolean isCanUse = true; Camera mCamera = null;...
    99+
    2023-05-31
    android 拍照权限 roi
  • SpringSecurity动态权限的实现方法详解
    目录1. 动态管理权限规则1.1 数据库设计1.2 实战2. 测试最近在做 TienChin 项目,用的是 RuoYi-Vue 脚手架,在这个脚手架中,访问某个接口需要什么权限,这个...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作