当前位置: 移动技术网 > IT编程>移动开发>Android > Android4.4新增函数访问外部存储

Android4.4新增函数访问外部存储

2019年07月24日  | 移动技术网IT编程  | 我要评论

水球球技能表,钮承泽屈中恒,红旗飘飘节目串词

在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卡,方法如下:

<permission name="android.permission.write_external_storage" >
<group gid="sdcard_r" />
<group gid="sdcard_rw" />
<group gid="media_rw" />
</permission> 

修改/system/etc/permissions/platform.xml文件的android.permission.write_external_storage节点,增加<group gid="media_rw" />(需要root权限)。

修改完后应用就可以随意控制sd卡了。

以上所述是小编给大家介绍的android4.4新增函数访问外部存储 ,希望对大家有所帮助

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网