android sd卡可执行文件环境sd卡只能读不能写啊,请大神帮忙

有需求做一些类似文件管理器的,就会用到获取外置可移动SD卡的路径。一般的通过Environment或者Context获取的都是手机自带的存储卡路径,类似storage/emulated/0/加后缀。由于谷歌之后的意思是像ios一样,不支持外置USB或者外置可移动SD存储。但是国内的厂商一般都支持。先大概分个类,6.0以下的使用方法一,6.0以上的使用方法二。

1.这个适用6.0+的版本,因为谷歌在6.0+移除了secondary_storage这个值,所以需要另辟蹊径。查看Environment的源码则可以找到答案,

所有要获取所有的存储路径,就要用到storageManager,这个类可以通过以下代码获取

以下是具体用反射获取外置可移动SD卡路径的方法,在8.0华为Nova2s测试的结果是:外置/storage/ 内置/storage/emulated/0 . 注意/storage/可能跟机型有关,具体的看实际Log. removable为true则意味着这个路径是外置可移动的,即为外置SD卡路径


 


 

怎样操作外置SD卡文件

 
 


谷歌在4.4中应用了新的sd卡规范,从而导致现在大部分的第三方软件无法对sd卡进行写入。自带的一些程序不受影响,因为它们被赋予了完整权限(如相机、自带文件管理器(国行专属)和自带游览器等)。软件读取SD卡内的文件没有任何问题,谷歌没动读取权限。
不过它也没有完全封死第三方应用对sd卡的写入权限,程序拥有sd卡中 Android/data下程序安装时建立的那个文件夹的写入权限。这里提醒一下,如果程序安装时没在那建文件夹你手动去建立是没用的。
目前正常的一些软件都是在那建立了文件夹并且下载目录也是在该文件夹里的。对于非root用户只能等程序更新适应4.4(多反馈)或者谷歌在未来改回(可能性不大)。root用户的话改一个配置文件能解决,刷机党不愁,基本做4.4rom的作者都会把这个改好。
另外,在安卓5.0中以及以后由于新的API的完善,谷歌已经应用了新的sd写入,读取规范,软件的sd卡写入权限也将回归。我是一个安卓开发者,如果我的软件被下载并且安装在安卓4.4上写入sd的功能形同虚设,毫无意义。所以,我发这个帖子是为了科普。

注意:只能是改写不能拷贝粘贴否则出现需要刷机才能解决的严重问题像不显示内置或者sd卡的问题只能通过线刷解决。

本来是想写补丁包,不过本人技术不精所以作罢。

希望我的帖子能够解决你的问题,否则反馈。

首先手机必须获取了root权限

将文件的只读属性改为读写属性并用文本编辑器打开这个文件

添加完保存退出重启手机,第三方app就有了在SD卡上写入数据的权限了

我要回帖

更多关于 android sd卡可执行文件 的文章

 

随机推荐