zoukankan      html  css  js  c++  java
  • Android java.io.FileNotFoundException:*** (Permission denied)

    自从离开上海来到杭州之后,陆续接触了Android,Python,C++,OpenCV,最为一个新人来说,一路上遇到了很多坑,幸运的是 这互联网的强大(大傻子我还是蛮喜欢的哈),一路填填补补总算走了下来。
    一直就有把自己这几个月来遇到的问题记录下来的想法,苦于没有时间(其实就是自己太懒),业精于勤荒于嘻,就以这个刚刚解决的问题作为开始吧。

    接下来是正文啦~~~
    大家都知道,Android 6.0中,某些权限属于Protected Permission,例如:读写手机存储权限,仅仅在AndroidManifest.xml中申明是无法真正获取到权限的,打开手机的权限管理页面,我们可以看见,读写手机存储权限栏是一个问号,这意味着App并未获取到该权限。
    这是访问手机存储时,会报出类似下面的错误:
    java.io.FileNotFoundException:*** (Permission denied)
    有一个简单粗暴的方法,就是在App安装完成之后,手动在手机上将该权限改为允许。但是这种方法太low了,给用户带来的体验也很差。我们希望通过代码动态的获取此权限,用户只需要在第一次安装时,在弹出的窗口点击一下允许,就可以啦。
    实现代码:

        if (Build.VERSION.SDK_INT >= 23) {
            int REQUEST_CODE_CONTACT = 101;
            String[] permissions = {Manifest.permission.WRITE_EXTERNAL_STORAGE};
            //验证是否许可权限
            for (String str : permissions) {
            if (this.checkSelfPermission(str) != PackageManager.PERMISSION_GRANTED) {
                 //申请权限
                    this.requestPermissions(permissions, REQUEST_CODE_CONTACT);
                }
            }
        }
    

    PS:其它的权限小伙伴们就可以以此类推啦。

  • 相关阅读:
    1.选择排序法
    24.桌面移动qq
    23.控制语句题目
    23.位运算实现加法
    22.dll调用技术
    21.MFC进制转换工具
    2.CString转换到char*
    20.原码反码补码及图形化界面
    11gR2 Agent 简介
    RAC数据库后台进程介绍
  • 原文地址:https://www.cnblogs.com/fx-blog/p/8194565.html
Copyright © 2011-2022 走看看