安卓文件读写出现open failed: EACCES (Permission denied)的问题
来源:互联网 发布:java 7u40 编辑:程序博客网 时间:2024/05/16 11:11
我在将网路图片读取到本地时:logcat报java.io.IOException: open failed: EACCES (Permission denied)问题
当时查看了网上的一些资源大部分是说 manifest中配置的权限问题 我的配置文件如下
<uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
还有当时我看到一篇2B博客说是把<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>放到 <activity>中为此我只能无语了
后来发现是应为4.0以后的版本的sd卡有了内外之分,当然如果你的配置没问题且代码无误,再4.0之前的版本是不会出现这个问题的
在2.x的版本中,在manifest中配置的权限android.permission.WRITE_EXTERNAL_STORAGE确实是用来使得sd卡获得写的权限。而在4.0开发的源码当中,由于有了内外置sd卡的区分,android.permission.WRITE_EXTERNAL_STORAGE的权限用来设置了内置sd卡的写权限,如果在manifest中只是配置了这个权限,那个应用只能在内置sd卡中进行写操作,还是无法在外置sd卡中进行写操作。需要写外置sd卡的话,需要配置另一个权限android.permission.WRITE_MEDIA_STORAGE,这样就可以在外置sd卡中进行写入操作了。
这两个权限都被定义在android源码目录\frameworks\base\data\etc\platform.xml中:
<permission name="android.permission.WRITE_EXTERNAL_STORAGE" > <group gid="sdcard_rw" /> </permission> <permission name="android.permission.WRITE_MEDIA_STORAGE" > <group gid="media_rw" /></permission>从android 4.0以后就不允许这样操作了,因为如果在主线程进行数据操作,如果网络不好那么整个程序就卡死在那里了。所以android4.0以后对要联网的代码必须在新开一个线程来做
于是我在我的主文件里面添加了这样一段代码:
<span style="white-space:pre"></span>@SuppressLint("NewApi")public static void closeStrictMode() {StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder().detectAll().penaltyLog().build());}如下:
于是乎问题就解决了!4.0以后的版本他认为主线程进行数据操作这样的写法不安全 读取和写入文件一般大多是由于这个原因引起的!大家一定要注意!!!
0 0
- 安卓文件读写出现open failed: EACCES (Permission denied)的问题
- open failed: EACCES (Permission denied)
- open failed: EACCES (Permission denied)
- open failed: EACCES (Permission denied)
- open failed: EACCES (Permission denied)
- open failed: EACCES (Permission denied)
- open failed: EACCES (Permission denied)
- caused by android.system.errnoexception open failed eacces (permission denied)解决方案,安卓6.0(API23)权限问题
- caused by android.system.errnoexception open failed eacces (permission denied)解决方案,安卓6.0(API23)权限问题
- caused by android.system.errnoexception open failed eacces (permission denied)解决方案,安卓6.0(API23)权限问题
- caused by android.system.errnoexception open failed eacces (permission denied)解决方案,安卓6.0(API23)权限问题
- caused by android.system.errnoexception open failed eacces (permission denied)解决方案,安卓6.0(API23)权限问题
- java.io.IOException: open failed: EACCES (Permission denied)问题
- Android extsd open failed: EACCES (Permission denied)
- Android extsd open failed: EACCES (Permission denied)
- android open failed: EACCES (Permission denied)
- 关于java.io.IOException: open failed: EACCES (Permission denied)问题的解决
- EACCES (permission denied)解决办法 android 文件读写
- leetcode:Surrounded Regions
- http简介
- 枚举enum用法-代码
- CSDN是垃圾网站,曰你媽。下载软件,又要注册,又要积分。
- hadoop开发环境配置
- 安卓文件读写出现open failed: EACCES (Permission denied)的问题
- IoC框架----实践部分
- Effective java10——序列化
- 4_C# 高级编程(第六版)学习笔记——第5章 继承
- 模式识别 - 查准率(Precision) 和 召回率(Recall)
- C语言中堆和栈的区别
- FastJSON 案例测试
- GPS数据读取与处理(二)
- 判断是否root了