崩坏3应用sd卡读写权限限问题如何搞定

请登陆后使用
只需一步,快速开始
吧友自助信息发布区,请自行甄别
查看: 777|回复: 0
崩坏3领取礼包 说舰长没有权限
头像被屏蔽
在9you app找的兑换码&&去游戏兑换&&说没有权限
重要信息提醒 /1
双十一红包点击领取:1元、2元、5元、1111元;每天可领,点击这里领取>>>
Powered byAndroid应用开发中,常使用Environment类去获取外部存储目录,在访问外部存储之前一定要先判断外部存储是否已经是可使用(已挂载&可使用)状态,并且需要在AndroidManifest.xml文件中添加外部存储读和写的权限。  Environment类中提供了几个静态常量用于标识外部存储的状态,这些状态都是String类型直接使用equals()判断即可!
/mnt/sdcard目录是否存在
canRead返回
canWrite返回
在/mnt/sdcard创建文件
在/mnt/sdcard创建文件夹
MEDIA_MOUNTED
SD卡正常挂载
MEDIA_REMOVED
false:&&原因Permission denied
MEDIA_UNMOUNTED
有介质,未挂载,在系统中删除
false:&&原因Permission denied
MEDIA_BAD_REMOVAL
介质在挂载前被移除,直接取出SD卡
false:&&原因Permission denied
MEDIA_CHECKING
正在磁盘检查,刚装上SD卡时
false:&&原因Permission denied
MEDIA_SHARED
SD卡存在但没有挂载,并且通过USB大容量存储共享,操作打开USB存储
false:&&原因Permission denied
MEDIA_MOUNTED_READ_ONLY
sd卡存在并且已挂载,但是挂载方式为只读
无法模拟,SD卡不允许修改权限
MEDIA_NOFS
介质存在但是为空白或用在不支持的文件系统
无法模拟,SD卡格式化后再加载会自动生成系统文件
MEDIA_UNMOUNTABLE
存在SD卡但是不能挂载,例如发生在介质损坏
通过上表可以看出,只有在SD卡状态为MEDIA_MOUNTED时/mnt/sdcard目录才是可读可写,并且可以创建目录及文件。所以我们读取SD卡时一般会这么写:只有满足条件时:才在if与具体里面执行特定的逻辑:比如下载图片到SD卡:
3 state = Environment.getExternalStorageState();
if(state.equals(Environment.MEDIA_MOUNTED)){
path =Environment.getExternalStorageDirectory().getAbsolutePath();
6 }下面是Android重的一段代码。主要是示例Environment检测sdcard状态的应用!
// 使用http协议下载图片
HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(path);
HttpResponse response = null;
// 获取SDcard的目录
File file = Environment.getExternalStorageDirectory();
FileOutputStream outputStream = null; // 这是方便在后面关闭IO流
response = httpClient.execute(httpPost);
if (response.getStatusLine().getStatusCode() == 200) {
// 将获得的资源放入字节数组中
byte[] result = EntityUtils.toByteArray(response.getEntity());
// 将数据写入到SD卡上面的指定名字的文件里面,首先创建一个文件
// 同时需要判断如果SD卡是在挂载的状态吗,那么OK可以写了
if (Environment.getExternalStorageState().equals(
Environment.MEDIA_MOUNTED)) {
File new_file = new File(file, "x.jpg");
outputStream = new FileOutputStream(new_file);
outputStream.write(result, 0, result.length);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
} finally {
outputStream.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
1 //这两个配置文件中的状态是不可少的,要向支持连接网络还需要网络允许
2 &uses-permission Android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/&
3 &uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/&
4 &uses-permission android:name="android.permission.INTERNET"/&
在Environment中还提供了Android标准目录的路径,以String类型提供。DIRECTORY_ALARMS 系统提醒铃声存放的标准目录。DIRECTORY_DCIM 相机拍摄照片和视频的标准目录。DIRECTORY_DOWNLOADS&的标准目录。DIRECTORY_MOVIES 电影存放的标准目录。DIRECTORY_MUSIC 音乐存放的标准目录。DIRECTORY_NOTIFICATIONS 系统通知铃声存放的标准目录。DIRECTORY_PICTURES 图片存放的标准目录DIRECTORY_PODCASTS 系统广播存放的标准目录。DIRECTORY_RINGTONES 系统铃声存放的标准目录。static File getDataDirectory() 获得data的目录(/data)。static File getDownloadCacheDirectory() 获得下载缓存目录。(/cache)static File getExternalStorageDirectory() 获得外部存储媒体目录。(/mnt/sdcard or /storage/sdcard0)static File getRootDirectory() 获得系统主目录(/system)除了用Environment获取存储目录之外,还可以通过把路径写死的方式,比如要读取外部存储/mnt/sdcard目录下的文件,可以在程序中直接用全路径,但是这样做是很不好的,应该实在是太开放了,外部存储的目录的什么还是要固件制作商才知道,但是有一点是毋庸置疑的,就是Android框架层里面已经是指定好了Environment.getDownloadCacheDirectory()的返回路径。所以,尽量用这种方式来获取和存储数据,以免固件厂商不同而造成路径的差异。Android的实际开发中还用了两个非常重要的缓存目录,一个是应用程序自己的缓存空间,另一个是外部存储为该应该程序提供的缓存空间。有什么差别?使用过LruCache和DisLruCache的童鞋应该知道。这两个方法是通过上下文对象Context获取的,只要应用程序被卸载,这两个目录下的文件都要被清空。context.getCacheDir() 获取应用程序自己的缓存目录context.getExternalCacheDir() 获取应用程序在外部存储的存储目录
参考了:http://blog.csdn.net/yuzhiboyi/article/details/8645730
    /shuoit/550.html  
阅读(...) 评论()扫描下载MIUI论坛APP
经验828 米
在线时间20 小时
版本6.9.29
积分 900, 距离下一级还需 1100 积分
积分 900, 距离下一级还需 1100 积分
机型红米Note3 全网通
签到次数15
MIUI版本6.9.29
& && && && & 自从升级了安卓6.0后(MIUI8开发板6.9.29),楼主发现原先的SDFix或者用RE管理器修改系统文件来获取第三方应用程序外置SD卡写入权限的方法失效,这对于存储空间寸土寸金的标配版用户是及其抓狂的,比如想下点音乐或者缓存点视频,提示没有权限。后来发现有一个xposed框架模块可以解决这个问题,它就是XInternalSD。
Screenshot_-22-57-32-681_de.robv.androi(1).png (412.87 KB, 下载次数: 4)
& && && &&&这个插件的设置界面如下,如果勾选自定义存储卡路径,再勾选对所有应用启用,则将倒置外置SD卡为主存储卡,即你的QQ微信游戏缓存都会存放到外置SD卡,但是一般外置SD卡的读写速度比内置缓慢,会倒置手机加载变慢,不建议勾选。勾选最后的“对外置存储卡的完整权限”既可。
Screenshot_-22-57-42-113_com.pyler.xint.png (165.86 KB, 下载次数: 0)
& && &勾选激活并重启后,发现第三方应用有了对外置SD卡完整的写入权限,简直比SDFix强大。楼主试了下,发现酷狗已经可以把歌曲下载到自己指定的目录了
Screenshot_-22-59-18-723_com.kugou.andr.png (275.62 KB, 下载次数: 0)
& && && &ES文件浏览器可以在USB OTG中复制粘贴和新建文件(当单个文件大于4G时,ES可以读取NTFS文件,,自带文件管理被我抛弃了)。
Screenshot_-22-59-55-290_com.estrongs.a.png (290.36 KB, 下载次数: 0)
Screenshot_-23-01-18-365_com.estrongs.a.png (175.55 KB, 下载次数: 0)
& && &下面提供这个插件的下载地址& &————链接: 密码:sncb
____________________________________________________________________________________
对于如何刷xposed框架,论坛里已经有很多大神贴了,我就不再重复了。
楼主只是大自然的搬运工,要感谢资源的开发者!
分享到微信朋友圈
打开微信,点击底部的“发现”,使用 “扫一扫” 即可将网页分享到我的朋友圈。
经验828 米
在线时间20 小时
版本6.9.29
积分 900, 距离下一级还需 1100 积分
积分 900, 距离下一级还需 1100 积分
机型红米Note3 全网通
签到次数15
MIUI版本6.9.29
OBB ON SD也是个好东西,它可以把游戏数据包迁移到外置SD卡中。链接: 密码:nsn5
经验819 米
在线时间9 小时
版本V8.1.1.0.MXDCNDI
积分 845, 距离下一级还需 1155 积分
积分 845, 距离下一级还需 1155 积分
机型小米手机3/4 WCDMA版
签到次数72
MIUI版本V8.1.1.0.MXDCNDI
经验4006 米
在线时间12 小时
版本6.5.26
积分 4630, 距离下一级还需 370 积分
积分 4630, 距离下一级还需 370 积分
机型红米Note3 全网通
MIUI版本6.5.26
确实是好东西
经验342 米
在线时间14 小时
版本V7.3.8.0.LHOCNDD
积分 359, 距离下一级还需 141 积分
积分 359, 距离下一级还需 141 积分
机型红米Note3 全网通
签到次数27
MIUI版本V7.3.8.0.LHOCNDD
Copyright (C) 2016 MIUI
京ICP备号 | 京公网安备34号 | 京ICP证110507号}

我要回帖

更多关于 sd卡读写权限 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信