今天又是 "咔嚓","窟窿","轰隆", 不晓得哪位大仙在渡劫. 真的是风生水起, 虎虎生威!!! 言归正传:
描述: 最近做了从服务器下载 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.bubuko.com/infodetail-3137540.html