导航:首页 > 文件目录 > android读写sd卡文件系统

android读写sd卡文件系统

发布时间:2023-06-10 07:21:45

❶ 如何用安卓文件系统读写数据

  经过ARM板-RK3288和小米手机的测试。亲测可以使用。

       博客中写的欠缺的地方,无所谓,直接去看代码,里面的注释很详细。程序员看代码就行了,每个函数全部封装好了,废话不多话。博客很长,大家慢慢看,看完一劳永逸,以后直接调我的函数就行了,但是讲的很详细,全部都是对比的来实现,方便大家的阅读。

总体:大家依据直接饿的需求去看

      一、先大体的介绍一下理论部分,这里还是很重要的。

      二、常见的存储数据的方式

       三、IO 文件流的读取方式

       四、sharedPreference 存储

       五、SQLite的存储方式

       六、assets的存储方式 

       七、res的存储方式

       八、raw的存储方式

       一、先大体的介绍一下理论部分,这里还是很重要的。

      安卓存储文件、数据的地方: RAM、ROM、内存(内部存储器)、APP程序里面(Assets,raw,res),SD卡(早期的安卓的可以插卡,现在的不支持了,但是有些 arm板 嵌入式方向的还是带卡槽的),总体上来说就是这些了,网络

      接下来再细分:

       1、RAM、ROM 这些东西我们就别碰了,不然一大堆问题,Environment.getRootDirectory()  需要获取root权限,不合适

      2、内存和SD卡  大家得理解  Environment.getExternalStorageState()  代表的是什么意思,不是插卡的SD卡,而是说你买了开发板、手机,厂家送你的存储地方(直接你得让他送你哈)。  这部分作为主要的存储路径,小数据和大数据都适用。

      3、SD卡,黑色那张卡,老古董,现在手机都没有了,不建议大家使用,非要去使用,我也写了相关的代码(根据机型,不通用,切记,不能用不能怪我,这个只提供思路)。

     4、网络,请求自己的服务器,读取数据,URI的方式,httpClient    post 和 get 两种请求数据的方式

      存储的地方就这么多了。

     二、常见的存储数据的方式

      1、sharedPreference,  将数据保存为 xml 的格式,

      2、数据库  将SQLite的方式

      3、contentprovider  APP之间交互数据的方式。(这里不讲,没有用过,没有发言权)

      4、文件的读取(IO流) 和 java的操作类似。

      5、Android内部的存储 assets,res, raw,  三者的区别

           assets 和 raw 是不会随着 APP进行编译, res下的文件会随着app一起编译,每次 shift+alt+x 都要等好久

           assets目录下可以创建子文件夹     raw 不可以

 

              ❷ android P系统WRITE_MEDIA_STORAGE添加读写SD卡权限

              由于android P 版本google把android.Permission.WRITE_MEDIA_STORAGE中sd卡的读写权限移除了,导致系统文件管理中的文件无法直接复制到SD卡,所以需要把SD卡的读写权限加上到WRITE_MEDIA_STORAGE权限中去,
              方法一、
              1、frameworks\base\data\etc\platform.xml中添加:

              2、frameworks\base\services\core\java\com\android\server\pm\PackageManagerService.java

              方法二、修改system\vold\model\PublicVolume.cpp

              参考:
              https://blog.csdn.net/ch853199769/article/details/88052886
              https://blog.csdn.net/qq_27061049/article/details/93715885

              ❸ Android 6.0 读写SD卡权限问题

              Android 6.0 下默认存储SD卡,使用原生FMRadio生成的文件保存到内部存储中
              【预置条件】插入T卡【操作步骤】设置>存储设备和USB>选择SD卡为默认存储>收音机录音【实际结果】收音机的录音文件未保存到T卡【预期结果】收音机的录音文件保存到T卡【复现概率】10/10
              此外,SoundRecorder默认存储SD卡,生成的文件却可以保存到SD卡中

              1、收音机文件没有保存到指定的SD卡目录下,因此可能是文件的路径不对。
              2、进入设置中,切换默认存储位置,内部存储或者SD卡,每次切换都会修改系统中某一属性值。
              3、当收音机文件保存的时候,必须要读取当前系统的默认存储路径,然后生成自己的文件路径。

              STEP1、初步解决方案,但没有生效,引入新问题
              对比 SoundRecorder ,根据GIT库中,之前的同事的修改记录,找到可能的解决方案,修改如下:

              引入新的问题,此时,点击 Start Recording 会提示内部错误。
              分析Log发现,由于权限拒绝,抛出IO异常
              01-01 07:35:38.167 7467 7467 W System.err: java.io .IOException: open failed: EACCES (Permission denied)

              STEP2、Android M 下SD卡读写权限问题
              分析由于权限问题后,结合Android M new design,开始查找文档,寻找解决Android M 下SD卡读写权限问题
              Android6.0中的运行时请求权限
              后来,试了好几种方法,但都没有用,以及报问题“EACCES (Permission denied)”

              STEP3、再分析可能是运行时权限问题
              判断APP运行时权限如下:

              发现此时,FMRadio对于的组权限如下:
              com.android.fmradio Groups: 1013 3002 3003 9997 50010
              com.android.soundrecorder Groups: 1015 1023 3003 9997 50105

              根据 系统权限 的定义,有兴趣的同学可以去看一下这个文件 system/core/include/private/android_filesystem_config.h
              分析这些Gid发现:
              1015 为sdcard_rw,1023 为media_rw权限
              因此,得出结论如下
              1、首先修改AndroidManifest.xml文件,新增权限,确保FMRadio应用级的权限;
              2、原生FMRadio使用过程中,会进行运行时的权限检查,故FMRadio运行时应该拿到了WRITE_EXTERNAL_STORAGE,以及READ_EXTERNAL_STORAGE权限,
              3、但是由于FMRadio本身不具备“1015,1023”组权限,这些权限无效,仍然无法对SD卡进行读写操作。

              STEP4、最终解决方案
              STEP1 的修改基础上,在框架层,权限对应组中给予FMRadio相应的组权限,新增修改如下:
              frameworks/base/data/etc/platform.xml

              重编framework.jar, 将修改后的jar文件push到手机,重启
              此时,再检查FMRadio对于的组权限如下:
              com.android.fmradio Groups: 1013** 1015 1023** 3002 3003 9997 50010

              到此为止,

              ❹ 如何在 Android 5.0 上获取 SD卡 的读写权限

              1.首先请安装「Root Explorer」这个app,它可以在已ROOT的手机中管理隐藏的系统核心档案。 2.安装完成并开启Root Explorer以後,展开「/system/etc/permissions/」路径,然後在「platform.xml」上长按。 3.跳出「Options」选单以後,先按一下「Permissions」,我们要更改档案的权限才能写入文字。 4.此时会跳出一个警告讯息,告知你目前系统内的档案为唯读模式,需先更改为读写模式,按下「Yes」即可更改。 5.更改完成以後,将「Read」、「Write」、「Execute」项目都勾起来,然後按一下「OK」。 6.权限更改完成以後,再次在「platform.xml」上长按一次。 7.跳出「Options」选单以後,这次我们点击「Open With」,选择用哪个app开启此档案。 8.看到显示了一堆app,我们选择用「Text Viewer」来开启,如果读者们有其他的文字编辑app,也可以用它来开启。 9.找到以下两段文字以後,将内容改成跟底下一样: <permission name="android.permission.WRITE_EXTERNAL_STORAGE" > <group gid="sdcard_r" /> <group gid="sdcard_rw" /> <group gid="media_rw" /> </permission> <permission name="android.permission.WRITE_MEDIA_STORAGE" > <group gid="sdcard_rw" /> <group gid="media_rw" /> </permission> 10.更改完成以後,点击一下叫出选单,点击「Save Changes」储存更改,然後离开即可。 11.储存成功以後,可以看到资料夹中多了一个「platform.xml.bak」档案,往後要还原时,只要将「platform.xml」删除,然後把「platform.xml.bak」更改回原来名称即可。 12.最後重新开启手机,即可让设定生效罗! NOTE: 坊间已经有直接可以修改SD卡写入权限的app出现,但因为安全因素,我们还是自行手动修改比较安全。

              ❺ 如何读取SD卡CSV文件或指定的路径在android系统

              android手机获取自带存储路径和sd卡存储路径的方式是:调用Environment.getExternalStorageDirectory(),返回的存储目录并不是系统内置的SD卡目录。
              1.一部分手机将eMMC存储挂载到 /mnt/external_sd 、/mnt/sdcard2 等节点,而将外置的SD卡挂载到 Environment.getExternalStorageDirectory()这个结点。
              此时,调用Environment.getExternalStorageDirectory(),则返回外置的SD的路径。
              2.而另一部分手机直接将eMMC存储挂载在Environment.getExternalStorageDirectory()这个节点,而将真正的外置SD卡挂载到/mnt/external_sd、/mnt/sdcard2 等节点。
              此时,调用Environment.getExternalStorageDirectory(),则返回内置的SD的路径。

              ❻ android系统中,怎样才能将文件在sdcard中进行创建,读写,删除操作

              我也遇到过,不过重启下虚拟机就可以访问了。

              阅读全文

              与android读写sd卡文件系统相关的资料

              热点内容
              孕育树app怎么样 浏览:453
              电脑输出u盘暂停后文件完整吗 浏览:532
              msdn下载xp哪个版本 浏览:673
              app为什么会经常闪退 浏览:66
              js怎样获取键盘的高度 浏览:241
              怎么生成ico文件 浏览:542
              王者荣耀读取文件失败 浏览:611
              传奇世界三无版本 浏览:664
              上市公司如何建立数据系统 浏览:750
              什么都能看的应用app 浏览:452
              金蝶软件错误代码3639 浏览:434
              dnf90版本狂战左槽 浏览:139
              城乡消费水平数据从哪里可以找到 浏览:472
              满月微信红包吉利数字 浏览:180
              怎样在excel文件中查找 浏览:943
              网络公司如何安装网线 浏览:881
              小米视频怎么升级失败是怎么回事 浏览:589
              苹果开发者客服24小时服务电话 浏览:654
              java监听器的应用场景 浏览:322
              微信零钱话费多久到账 浏览:165

              友情链接