文章目录

  • 问题描述:
  • 注册权限
  • 动态申请权限
  • 总结:

问题描述:

Android开发,在访问文件夹创建文件的时候,报错IOException: No such file or directory ,代码本身没有问题。

注册权限

找了一会儿,突然间想起来这是一个访问内存,需要权限,在AndroidManifest中进行注册:

 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

  • 因为读和写是同一大权限下的,申请其中一个,就可以将同一大权限下的所有都获取到

  • 同时,官方规定了危险权限列表,如下图的危险权限,AndroidManifest中注册了也无法直接使用(API 23以后),需要动态申请。

动态申请权限

动态申请权限,可以在一开始进入程序的时候就全部申请,也可以在用到这个功能的时候再向用户申请,因为我用的很早,所以在一开始进入的时候就申请了,需要加入如下代码:

 String[] permissions = new String[]{Manifest.permission.CAMERA, Manifest.permission.WRITE_EXTERNAL_STORAGE};List<String> mPermissionList = new ArrayList<>();// private ImageView welcomeImg = null;private static final int PERMISSION_REQUEST = 1;// 检查权限private void checkPermission() {mPermissionList.clear();//判断哪些权限未授予for (int i = 0; i < permissions.length; i++) {if (ContextCompat.checkSelfPermission(this, permissions[i]) != PackageManager.PERMISSION_GRANTED) {mPermissionList.add(permissions[i]);}}/*** 判断是否为空*/if (mPermissionList.isEmpty()) {//未授予的权限为空,表示都授予了} else {//请求权限方法String[] permissions = mPermissionList.toArray(new String[mPermissionList.size()]);//将List转为数组ActivityCompat.requestPermissions(MainActivity.this, permissions, PERMISSION_REQUEST);}}/*** 响应授权* 这里不管用户是否拒绝,都进入首页,不再重复申请权限*/@Overridepublic void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {super.onRequestPermissionsResult(requestCode, permissions, grantResults);switch (requestCode) {case PERMISSION_REQUEST:break;default:super.onRequestPermissionsResult(requestCode, permissions, grantResults);break;}}

同时在onCreate中触发检查权限的方法;加入checkPermission()方法

总结:

  1. 是否在AndroidManifest中注册了权限
  2. 若是注册了权限且开发环境大于23,是否进行了动态申请权限。

IOException: No such file or directory 问题解决相关推荐

  1. cmake 成功后, make 出现 No such file or directory 问题解决

    cmake 成功后, make 出现 No such file or directory 问题解决 参考文章: (1)cmake 成功后, make 出现 No such file or direct ...

  2. mac下/usr/local/bin No such file or directory问题解决

    mac下/usr/local/bin No such file or directory问题解决 参考文章: (1)mac下/usr/local/bin No such file or directo ...

  3. Greenplum【部署 07】6.19.0详细安装步骤libnsl/libcrypto/libssl/libreadline No such file or directory 问题解决

    问题解决所需文件网盘资源: 链接:https://pan.baidu.com/s/1uMrhVmHlvEQ-sEGZtqhqiw 提取码:kkab 文件列表: libnsl-2.17.so libcr ...

  4. Keil编译报错:Cannot open include file: 'stdbool.h': No such file or directory问题解决

    Keil编译出现报错:Cannot open include file: 'stdbool.h': No such file or directory,或者出现Error: L6411E: No co ...

  5. rmmod: can't change directory to '/lib/modules': No such file or directory问题解决

    在使用rmmod命令时会出现rmmod: can't change directory to '/lib/modules': No such file or directory这个错误,经搜索得知,是 ...

  6. java.io.IOException: No such file or directory之linux权限问题

    前言 开发环境一个上传文件的服务被人以非root账号启动,启动之后上传文件总是报一个目录不存在,异常信息关键点如下 Caused by: java.io.IOException: No such fi ...

  7. Android createNewFile()方法报错:java.io.IOException: No such file or directory

    mkdir()改成mkdirs(), 但是光这么做还是不行的. 也和权限有关, 不光要在AndroidManifest里申请权限: <uses-permission android:name=& ...

  8. Linux下执行.sh命令出现-bash: ./bin/start.sh: /bin/bash^M: bad interpreter: No such file or directory 问题解决

    出现如下这个问题,一般都是文本格式是dos格式,需改为unix格式. 查看文件格式  用 vim 打开出错的文件    按 ESC键     再按shift+冒号   输入 set  ff  回车   ...

  9. linux脚本执行提示: No such file or directory问题解决

    一般是文件格式是dos格式,改成unix 格式即可,方法 用vim打开该sh文件,输入: :set ff  回车,显示fileformat=dos,重新设置下文件格式: :set ff=unix  保 ...

最新文章

  1. Microsoft Platform SDK Febrary 2003更新vc6的SDK网址
  2. 海康威视连续采图与单步采图_c#
  3. MusicXML 3.0 (7) - 连线、延音线
  4. [转]RedHat Enterprise Linux 7关闭防火墙方法
  5. Hadoop 伪分布式 配置文件详情
  6. GRPC golang版源码分析之客户端(一)
  7. Quartz + spring 定时任务常见错误总结
  8. php连接数据库非明文,MySQL 数据库配置 SSL 安全连接
  9. 初探Openstack Neutron DVR
  10. 三星a9s参数_三星A9s配置怎么样 三星A9s参数配置介绍
  11. python模块paramiko与ssh
  12. [乱七八糟]分享今晚瞎逛来的网络东东
  13. vivado 开发教程(二) 使用IP集成器
  14. 【算法动画图解】:安利一款昨天发现的app
  15. 如何解决unity使用vs2017、vs2018、vs2019等 编辑器创建新项目时无法产生.sln文件的一个小办法
  16. 简单实现图片转彩色字符画
  17. SC16IS750在STM32的应用
  18. 电磁场理论笔记03:自由空间中微分形式电磁场定律和边界条件
  19. nodejs 做动态网页
  20. 如何准备银行秋招春招?

热门文章

  1. Ubuntu v20.04 Detailed installation tutorial
  2. puppy linux ssh,Blogs | 中文Puppy Linux开发者之家
  3. RMAN实战1:RMAN备份数据库、控制文件、参数文件、FRA、归档日志
  4. 818品牌logo背后的故事
  5. oracle登录连接为是什么,oracle里的连接(connection)究竟是指什么
  6. python基础教程菜鸟教程-Python从基础到入门系列教程
  7. web敏感信息泄漏(36)
  8. 8.Python函数
  9. Winsoft ComPort for Android Prolific-SEO狼术
  10. 【开源日记】宿舍断电自动关灯设备(二)