Android中已经添加权限,依然提示缺少权限,此时你需要添加动态权限

原文链接:http://blog.csdn.net/android_hdh/article/details/52583557

-------------------------------

最近在开发项目时,项目需要获取系统的WRITE_EXTERNAL_STORAGE权限,然后就在清单文件AndroidManifest中添加了该权限,但是在系统运行后发现并没有创建该有的文件,然后查看了一下日志发现系统提示没有获得权限,之后在网上搜索了下发现Android6.0之后需要动态获取这种权限,然后改了一下果真可以了,下面把动态获取权限的过程讲解一下,以备将来查看和帮助哪些遇到同样问题的人。

下面贴出请求动态获取权限的代码

自己定义的请求Code

[java] view plaincopy
print?
  1. private final static int REQUEST_CODE_ASK_WRITE_EXTERNAL_STORAGE=0x123;  


[java] view plaincopy
print?
  1. if(Build.VERSION.SDK_INT >= 23){//判断当前系统的版本  
  2.             int checkWriteStoragePermission = ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE);//获取系统是否被授予该种权限  
  3.             if(checkWriteStoragePermission != PackageManager.PERMISSION_GRANTED){//如果没有被授予  
  4.                 ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},REQUEST_CODE_ASK_WRITE_EXTERNAL_STORAGE);  
  5.                 return;//请求获取该种权限  
  6.             }else{  
  7.                 initEvent();//定义好的获取权限后的处理的事件  
  8.             }  
  9.         }else {  
  10.             initEvent();  
  11.         }  

当触发了获取该权限的操作时会弹出一个提示框,会询问你是否允许添加该种权限,具体如下图

然而,我们如何知道用户是点了什么呢?这里我们需要重写一下事件onRequestPermissionsResult(int requestCode,String[] permissions,int[] grantResults){}

通过该事件来回调监听用户的操作

[java] view plaincopy
print?
  1. @Override  
  2.    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {  
  3.        switch (requestCode){  
  4.            case REQUEST_CODE_ASK_WRITE_EXTERNAL_STORAGE:  
  5.                if(grantResults[0] == PackageManager.PERMISSION_GRANTED){  
  6.                    initEvent();  
  7.                }else{  
  8.                    finish();  
  9.                }  
  10.                break;  
  11.            default:  
  12.                super.onRequestPermissionsResult(requestCode, permissions, grantResults);  
  13.        }  
  14.    }  
这里grantResults[0] 的结果有两种一种是授权,一种是阻止,当授权时就执行你的相应操作,否则就关闭程序。

好了关于动态获取权限的流程就是这些,如果你觉得有用就顶一个吧,哈哈


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/538360.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux php任务计划,linux系统怎么添加计划任务执行php文件

linux系统怎么添加计划任务执行php文件linux系统怎么添加计划任务执行php文件?PHP不支持多线程,有时候处理问题不是那么爽,小编以php文件为例,讲解linux下的计划任务。linux系统添加计划任务执行php文件方法1.打开linux系统命令行界面。在命令行界面中输入如下命令…

windows server 2008 r2 定时关机_电脑怎么定时关机 秒懂的Win10定时关机命令使用方法...

Win10怎么定时关机?今天芝麻科技网教大家3种Win10定时关机方法,包含用命令定时关机、软件以及杀毒工具定时关机等,也适合XP、Win7和Win8等系统,相信对于一些如夜间下载东西或者大文件,挂机等用户有所帮助。方法一&…

Android-循环访问网站App

网优同事的突然需求。 花了1天开发了出来。 App截图 App操作流程 1、赋值要循环访问网站的地址 2、设置每次循环间隔时间和每次访问间隔时间 3、点击按钮开始访问 下载地址:https://download.csdn.net/download/zengmingen/9983519

与专门团队一起持续交付

BCG Digital Ventures的首席工程师Robin Weston 最近在伦敦持续生命周期大会(Continuous Lifecycle London)上发布了一份经验报告,在该报告中称,外部支持团队能够在难以实施变化的组织和封闭的团队中引入持续交付(CD)实践。该团队…

windows版一键绕id工具_Windows免费版一键绕过IOS13.6激活锁工具XgRiNdA,完美重启!...

支持iOS13.6.1系统,支持iPhone、iPad绕过,支持MEID三网、两网GSM机器,只要一键就可以绕过,可以完美关机重启,并且支持iTunes同步、爱思安装软件。新版本:增加屏幕锁/停用绕过解信号功能、新增12.4~13.2.3绕…

Could not find artifact

用Maven install 对父工程安装到本地仓库

uart怎么判断帧错误_UART通讯总线工作原理的理解

奥的斯电梯OCSS/LCBII /TCBC/GECB板与电梯轿厢和电梯井道之间的串行通讯采用了UART通讯,将井道和轿厢的输入、输出和开关部件的信号转换成串行通讯信号传输给电梯操作控制系统,大大节省了现场布线,下面就UART通讯总线工作原理的理解予以描述。…

matlab 光谱噪声,环境小卫星高光谱影像条纹噪声去除程序IDL版

前言源代码PRO stripe_remove1ENVI,/Restore_Base_Save_FilesENVI_Batch_initfile DIALOG_PICKFILE(/READ, FILTER *.img)print,fileENVI_OPEN_FILE,file,r_fidfidENVI_FILE_QUERY, fid, dimsdims, nsns, nlnl, nbnbprint,fid,dims,ns,nl,nbfdata fltarr(ns,nl,nb)datafltar…

启动TOMCAT报错 java.util.zip.ZipException: invalid LOC header (bad signature)

报错信息大致如下所示: at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)at java.lang.reflect.Method.invoke(Unknown Source)at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:303)at org.apache.catalina.startup.Bootstrap.…

结构体怎么赋值_c语言学习之基础知识点介绍:结构体的介绍

一、结构体的介绍/* 语法:struct 结构体名{成员列表;};切记切记有分号!说明:成员列表就是指你要保存哪些类型的数据。注意:上面的语法只是定义一个新的类型,而这个类型叫做结构体类型。因为类型不能保存数据&#xff0…

阿里云Maven仓库地址

<默认情况下配置多个mirror的情况下&#xff0c;只有第一个生效&#xff0c;只有当前一个mirror 无法连接的时候&#xff0c;才会去找后一个&#xff1b;而我们想要的效果是&#xff1a;当a.jar在第一个mirror中不存在的时候&#xff0c;maven会去第二个mirror中查询下载&a…

php怎么使得字体滚动,滚动文字+字体特效代码(全集)

收集了几天&#xff0c;终于把滚动文字*字体特效差不多收集完了&#xff0c;这里与大家一同分享&#xff0c;期待您的博客越做越漂亮&#xff01;感谢您的光临&#xff01;1.阴影滚动字循环滚动:欢迎光临弥勒内院看门人博客&#xff0c;看门人欢迎您代码:欢迎光临弥勒内院看门人…

Eclipse集成svn后出现Failed to load JavaHL Library的解决办法

在win10 64位上eclipsex64位 集成svn插件 在使用 Team-share project &#xff0c;选择svn后&#xff0c;报了&#xff1a;Failed to load JavaHL Library错误 解决方法&#xff1a; winodws--perference--svn。设置如下图

php如何打出的正方形行列,javascript实现输出指定行数正方形图案的方法

本文实例讲述了javascript实现输出指定行数正方形图案的方法。分享给大家供大家参考。具体如下&#xff1a;javascript实现输出指定行数的正方形图案&#xff1a;点击生成图案&#xff0c;会有2个提示框&#xff0c;1&#xff0c;输入图案的组成字符&#xff0c;只能是1个字符哦…

eclipse的SVN插件设置忽略文件

windows--preference--Team-ignore resource 这里我新增了maven项目常不需要提交应该忽略的文件和文件夹 文件&#xff1a; .setting .project .classpath 文件夹&#xff1a; */target/* */target */settings */settings/*

postgresql 插入 时间戳_数据也玩躲猫猫?PostgreSQL中别人提交的数据,我为什么看不到?...

原创&#xff1a; Aken DB印象文章链接&#xff1a;https://mp.weixin.qq.com/s/OkJaWbzcXcJtzSCOFnqeXQ文章作为DB的学习体会&#xff0c;若有错误欢迎指导。一、环境介绍操作系统&#xff1a;CentOS Linux release 7.6.1810 (Core) DB版本&#xff1a;PostgreSQL -11.5 on x8…

VMware打卡虚拟机提示“此虚拟机可能已被复制或移动”

“我已移动虚拟机” //表示打开后的虚拟的网卡的mac地址不变&#xff0c;如果复制本地的&#xff0c;同时开机在一个vmnet可能造成冲突。 “我已复制虚拟机” //表示打开后的虚拟机的网卡的物理地址是新生成的&#xff0c;建议不懂的就选这个。 “取消” …

nioqrc oracle,程序停在 readnocancel () from -lib-tls-libpthread.so.0

程序停在 readnocancel () from -lib-tls-libpthread.so.0(2012-04-10 23:20:56)标签&#xff1a;程序杂谈程序停在 __read_nocancel () from /lib/tls/libpthread.so.0我在 IBMBladeCenter JS21机器 (计算机集群)上 利用 MPI C 编程&#xff0c; 但出现了一些奇怪的现象。那就…

synchronized 方法 导致插入数据插不进_synchronized 原理知多少

本文转载于SegmentFault社区作者&#xff1a;ytaosynchronized是 Java 编程中的一个重要的关键字&#xff0c;也是多线程编程中不可或缺的一员。本文就对它的使用和锁的一些重要概念进行分析。使用及原理synchronized 是一个重量级锁&#xff0c;它主要实现同步操作&#xff0c…

SpringMVC源码解析(四)——请求处理

2019独角兽企业重金招聘Python工程师标准>>> 前言 这一篇&#xff0c;将着手介绍一次请求的处理。用到了 HandlerMapping、HandlerAdapter 知识&#xff0c;如果遇到不是太了解&#xff0c;可以回顾下。 源码分析 其实 DispatcherServlet 也只是 Servlet 的一个实现…