Android动态赋权限,安卓6.0以上动态添加权限超简单模板

今天又是“咔嚓”、“窟窿”、“轰隆”,不晓得哪位大仙在渡劫。真的是风生水起,虎虎生威!!!言归正传:

描述:最近做了从服务器下载apk到手机内存,然后安装打开以及 从服务器下载pdf文件直接打开浏览2个小功能。

问题:权限问题(安卓6.0以上直接在AndroidManifest.xml添加权限没用,必须要动态获取权限)

具体代码里遇到的问题:

1.Pk文件或者pdf文件没有下载到手机里面,最后查找原因,是因为没有获取到存储权限

2.pdf文件下载到手机之后,点击获取到存储权限,显示一个空白页,必须要返回上一级重新进入。 (还有一个小问题:直接打开pdf文件,会先显示一个空白页,再显示pdf文件内容)

解决方案:以存储权限(WRITE_EXTERNAL_STORAGE)为例,刚开始不晓得哪里出了问题,在网上找了好多代码调试(一个权限获取,写了50行代码,真的是 I 服了 me),

最后还开了线程,专门获取权限,搞得太复杂了。

今天突然顿悟,一气之下,删除了原先所有的代码,最后写了2个非常简单的小方法,居然成功解决了之前的问题。

具体代码:

public void checkPemission() {

int hasWritePermission = PermissionChecker.checkSelfPermission(this,Manifest.permission.WRITE_EXTERNAL_STORAGE);

if (hasWritePermission != PermissionChecker.PERMISSION_GRANTED) {

ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},9);

} else {

downFile();

}

}

public void onRequestPermissionsResult(int requestCode,String[] permissions,int[] grantResults) {

if (requestCode == 9 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {

downFile();

}

}

downFile()———— 是自己下载文件的方法,就不贴了, 还有安装apk文件,直接打开、显示pdf文件的方法,有需要的小伙伴直接留言或者加qq:2832440535交流,相互学习,共同提高!

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

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

相关文章

web前端常用代码于面试等资源

https://www.cnblogs.com/moqiutao/p/4766146.html转载于:https://www.cnblogs.com/as3lib/p/9654925.html

html 跳转到本页面指定位置

1 <html xmlns"http://www.w3.org/1999/xhtml"> 2 <head> 3 </head> 4 <body> 5 <a href"#ct1">跳转到词条1</a> 6 7   <a href"#ct2">跳转到词条2</a> 8   <br> 9   <di…

事情太多了,我实在支持不住了转载于:https://www.cnblogs.com/zjblue/archive/2005/12/03/290186.html

android论坛功能开发教程,Android教程 如何免费生成论坛App

介绍按照快速集成文档&#xff0c;您可以很容易的把BBSSDK提供的功能集成到您的应用中&#xff0c;然后使用BBSSDK来做开发。在集成前&#xff0c;您也可以先下载示例Sample的源码工程(包含应用内打开pdfoffice等格式文件)。使用Android Studio打开后&#xff0c;编译出网站上提…

自动化测试===adb 解锁手机的思路

在adb里有模拟按键/输入的命令 比如使用 adb shell input keyevent <keycode> 命令&#xff0c;不同的 keycode 能实现不同的功能&#xff0c;完整的 keycode 列表详见 KeyEvent&#xff0c;摘引部分我觉得有意思的如下&#xff1a; keycode含义3HOME 键4返回键5打开拨号…

linux 去掉 ^M 的方法

在linux上经常遇到这种问题&#xff0c;从网上下载文件到 linux 上后&#xff0c;就多了很多 ^M这种东西&#xff0c;如何集体删除这种东西呢&#xff01; 用 vim 打开文件 进行如下设置 将文件格式转化为unix :set ffunix :x 转载于:https://www.cnblogs.com/0820LL/p/11174…

What's NEW in C++/CLI Language

作为同时适用于本地/托管环境的新一代C语言扩充&#xff0c;C/CLI的定位与原有的Managed Extensions for C基本一致&#xff0c;在CLR 2.0环境中&#xff0c;它主要承载了如下5个使命&#xff1a; A. 源码级集成 (本地/托管/混合代码编译) B. 对象模型集成 (本地类型/指针、…

android 编译器有问题,Android Studio 3.0 Beta 2发布:解决编译器bug

5月18日&#xff0c;IT之家曾经报道&#xff0c;谷歌发布了Android Studio 3.0的测试版&#xff0c;新增了对Kotlin语言的支持&#xff0c;而日前&#xff0c;谷歌发布了Android Studio 3.0的Beta 2版本。此版本并无新功能加入&#xff0c;不过修复了一个困扰开发人员的bug&…

Kali安装magescan评估工具

Magento &#xff08;麦进斗&#xff09; 是一套专业开源的电子商务系统。Magento设计得非常灵活&#xff0c;具有模块化架构体系和丰富的功能。易于与第三方应用系统无缝集成。其面向企业级应用&#xff0c;可处理各方面的需求&#xff0c;以及建设一个多种用途和适用面的电子…

领域驱动设计在马蜂窝优惠中心重构中的实践

前言 正如领域驱动设计之父 Eric Evans 所著一书的书名所述&#xff0c;领域驱动设计&#xff08;Domain Driven Design&#xff09;是一种软件核心复杂性应对之道。 在我们解决现实业务问题时&#xff0c;会面对非常复杂的业务逻辑。即使是同一个事物&#xff0c;在多个子业务…

将继续深入学习网络编程

一段时间了&#xff0c;已经可以熟练在Java使用Socket和nio编写服务器应用程序&#xff0c;对一些流行的nio应用框架也有了较深的了解&#xff0c;也自己做了一些实现&#xff0c;并且应用到实践中去。我想&#xff0c;我需要从三个方面继续深入学习网络编程&#xff1a;1、网络…

鸿蒙系统发布会是什么时候,鸿蒙系统2.0发布时间是什么时候?或将与EMUI11一同发布!...

对于鸿蒙系统OS一直以来就备受大家的关注&#xff0c;作为华为自主研发的操作系统&#xff0c;它是华为之光&#xff01;很多人翘首盼望着它的到来&#xff0c;自1.0版本后鸿蒙系统2.0发布时间似乎确定下来了&#xff01;届时会与EMUI11一同向大家介绍&#xff01;今日&#xf…

第二周web作业1:简单的注册表单

<!DOCTYPE HTML><html> <head> <meta charset"utf-8"> <title>black_tea home</title> </head> <body> <h1>注册</h1> <form action""> <p>用户名&#xff1a;<input t…

HZNU 2019 Summer training 8

A - Petya and Origami CodeForces - 1080A 题意&#xff1a;制造一份邀请函需要2份a物品&#xff0c;5份b物品&#xff0c;8份c物品&#xff0c;一个盒子里面有k份物品&#xff08;可以为a或b或c&#xff09;问你制造n份邀请函需要用多少个盒子 题解&#xff1a;加起来就行了…

OGRE分析之设计模式

这段时间静下心来看了一下OGRE的源代码&#xff0c;有一点心得&#xff0c;于是写下来形成如下的几篇零散的文章&#xff1a; 阅读OGRE分析之设计模式&#xff08;四&#xff09; 摘要:Iterator Observer Strategy Template Method OGRE分析之设计模式&#xff08;三&#xff0…

android ota更新app,企业 OTA 更新  |  Android 开源项目  |  Android Open Source Project

Android 兼容性定义文档 (CDD) 可更新软件要求设备实现 SystemUpdatePolicy 类。SystemUpdatePolicy 可让设备所有者 (DO) 应用(如果存在)控制系统更新的安装。通知设备所有者无线下载 (OTA) 客户端必须使用系统 API 将传入的 OTA 更新通知给设备所有者应用。OTA 客户端还必须包…

利用Flutter写一个跨平台的果核APP(3)——网络请求

前言 紧接上文界面篇&#xff0c;上文中在构建布局的时候因为是直接将文字图片显示出来的&#xff0c;所以消息类Message&#xff0c;和日知录类One都是采用的无状态的StatelessWidget类&#xff0c;这次我们需要调用接口&#xff0c;然后将返回的数据动态的显示到那两个控件上…

2019 7 12

ICMP 协议封装 ICMP 协议属于网络层协议 ICMP 数据的封装过程 ICMP头部 ICMP数据 IP头部 上层数据&#xff08;ICMP报文&#xff09; 帧头部 上 层 数 据 帧尾部 ping命令 C&#xff1a;>ping [t] [-l 字节数] [-i] ip_address | target…

android layer-list,Android layer-list的属性和使用具体解释

Android layer-list的属性和使用具体解释。layer-list是用来多个图层堆叠显示的&#xff0c;借这个特性能够做一些特别的效果(比方&#xff1a;阴影、以下的效果等)&#xff0c;也能够投机取巧。1.代码片2.布局代码和效果图 (一定要注意在使用RadioGroup的时候要记的写RadioBut…

上传文件夹

前台<% Page language"c#" Codebehind"ZJSJKSC.aspx.cs" AutoEventWireup"false" Inherits"DDTYDB.Module.WJGL.ZJSJKSC" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" ><HTML> <…