时间:2021-05-21
Android4.4 访问外部存储
在Android 4.4系统中,外置存储卡(SD卡)被称为二级外部存储设备(secondary storage),应用程序已无法往外置存储卡(SD卡)写入数据,并且WRITE_EXTERNAL_STORAGE只为设备上的主要外部存储(primary storage)授予写权限,对于其他外部存储,其上的文件属性都改为基于文件夹结构,应用无需获取WRITE_EXTERNAL_STORAGE权限,但可以管理与自己包名相关的文件夹。举例来说,如果应用的包名是com.example.externalstorage,那么外部存储上的Android/data/com.example.externalstorage/文件夹就是它的了,可随意访问,无需权限。另外需要特别注意的是,应用卸载的时候,在SD卡上创建的相应文件夹、数据都会被同时完全删除。
例外,在Android 4.4里,系统应用(指有platform签名,或预装在/system/priv-app目录下的应用)可以通过使用WRITE_MEDIA_STORAGE权限获取完全读写SD卡的权限。
Android 4.4增加了下面的函数访问外部存储:
Context.getExternalFilesDirs(null), 返回多个sd卡的该应用私有数据区的files目录
/storage/sdcard0/Android/data/<包名>/files
/storage/sdcard1/Android/data/<包名>/files
Context.getExternalCacheDirs(), 返回多个sd卡下该应用私有数据库的缓存目录
/storage/sdcard0/Android/data/<包名>/caches
/storage/sdcard1/Android/data/<包名>/caches
Context.getObbDirs(), 返回多个sd卡下obb目录下的私有数据(该目录一般是游戏的数据包目录)
/storage/sdcard0/Android/obb/<包名>
/storage/sdcard1/Android/obb/<包名>
通过上面的函数在我的Android 5.1的系统上可以正确获取sd卡路径,但是在Android4.4系统上只能看到内部存储的路径。
根据网上的资料,Android 4.4以后可以通过修改系统文件来管理sd卡,方法如下:
1<permission name="android.permission.WRITE_EXTERNAL_STORAGE" >2 <group gid="sdcard_r" />3 <group gid="sdcard_rw" />4 <group gid="media_rw" />5 </permission>修改/system/etc/permissions/platform.xml文件的android.permission.WRITE_EXTERNAL_STORAGE节点,增加<group gid="media_rw" />(需要root权限)。
修改完后应用就可以随意控制sd卡了。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
在Android4.4系统中,外置存储卡(SD卡)被称为二级外部存储设备(secondarystorage),应用程序已无法往外置存储卡(SD卡)写入数据,并且
Android4.4系统针对RAM的占用进行了深度的优化,即使是运行内存仅有512MB的手机,同样可以流畅运行Android4.4系统,这要归功于其独特的ART
小米碰上巧克力棒是什么口味呢?如果你是小米2/2s机友,又想体验Android4.4的话,那就一定要来看下面这篇小米小米2s/2刷android4.4教程
以荣耀手环4为例,其荣耀手环不仅限于华为手机,兼容Android4.4及以上并支持蓝牙4.0的Android智能手机;iOS7.0及以上的iPhone手机都是可
以荣耀手环4为例,其荣耀手环兼容Android4.4及以上并支持蓝牙4.0的Android智能手机;iOS7.0及以上的iPhone手机都是可以使用的。 荣耀