热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

android中出现java.io.IOException:openfailed:EACCES(Permissiondenied)问题解决

今天在做项目的时候,在进行IO读写的时候出现java.io.IOException:openfailed:EACCES(Permissiondenied)问题解决,一开始我还以为是

今天在做项目的时候,在进行IO读写的时候出现java.io.IOException: open failed: EACCES (Permission denied)问题解决 ,一开始我还以为是Permission 的问题,不过找到AndroidManifest文件一看的时候:



我已经加了读写的权限了啊,怎么还会报这个错呢?

我接着查看IO操作的时候,文件保存的路径以及SD是否真的能用:
我用的是外部存储路径

String path = Environment.getExternalStorageDirectory().getAbsolutePath()+"/bank.apk";

校验SD卡是否可用的代码

public static boolean isExistSDCard() {
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
File sd = new File(Environment.getExternalStorageDirectory().getPath());
return sd.canWrite();
} else
return false;
}

通过Log我发现isExistSDCard()方法返回了false,我突然间好像明白了什么。

因为公司是做自定义机器的android应用开发,机器问题很是经常出现,兼容程序在机器上能运行,我在内外部存储做了一层判断,代码如下:

boolean isExistSDCard = isExistSDCard();
LogUtils.d(TAG,"isExistSDCard======="+isExistSDCard);
String path = "";
if (isExistSDCard){
path = Environment.getExternalStorageDirectory().getAbsolutePath()+"/"+apkName;
LogUtils.d(TAG,"path======="+path);
}else {
path ="/data/data/com.tecsun.tsb/cache/"+apkName;
LogUtils.d(TAG,"path======="+path);
}

推荐阅读
author-avatar
爱笑的美美6_833
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有