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

作者:屌丝迷途 时间:2022-09-14 18:34:04 

在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系统上只能看到内部存储的路径。

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新增函数访问外部存储 网站的支持!

来源:http://www.cnblogs.com/l2rf/archive/2016/10/25/5997264.html

标签:android,外部存储
0
投稿

猜你喜欢

  • java泛型详解

    2023-06-07 23:54:47
  • spring-cloud-stream结合kafka使用详解

    2022-05-19 14:32:50
  • 多线程(多窗口卖票实例讲解)

    2021-09-02 02:47:26
  • Java中Map遍历的九种方式汇总

    2023-05-02 21:57:27
  • Android学习教程之日历控件使用(7)

    2023-01-06 23:10:46
  • 完美解决Android三星手机从图库选择照片旋转问题

    2023-10-11 00:32:53
  • 基于Java HashMap的死循环的启示详解

    2021-08-15 20:01:16
  • 解析Java中的static关键字

    2022-03-02 17:15:35
  • 解决RabbitMq消息队列Qos Prefetch消息堵塞问题

    2021-11-17 17:36:13
  • 基于spring security实现登录注销功能过程解析

    2023-11-29 06:09:05
  • Java中的Object.getClass()方法解析

    2022-05-06 18:54:48
  • Java String类和StringBuffer类的区别介绍

    2022-06-12 11:42:13
  • C#递归算法之快速排序

    2021-08-16 21:13:37
  • 详解Java 中的三种代理模式

    2023-06-25 07:49:17
  • Java线程池必知必会知识点总结

    2021-07-30 13:08:02
  • Android 广播大全 Intent Action 事件详解

    2021-09-10 12:40:15
  • winform中的ListBox和ComboBox绑定数据用法实例

    2023-09-24 05:02:13
  • Java接口的作用_动力节点Java学院整理

    2021-12-23 20:46:14
  • java随机生成8位数授权码的实例

    2022-04-24 12:03:47
  • 浅谈c#.net中巧用ToString()将日期转成想要的格式

    2022-02-02 18:14:07
  • asp之家 软件编程 m.aspxhome.com