android存储访问.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
android存储访问

Android存储访问及目录 ? Android的外部存储   Android支持外部存储(case-insensitive filesystem with immutable POSIX permission classes and modes)。   外部存储可以通过物理介质提供(如SD卡),也可以通过将内部存储中的一部分封装而成,设备可以有多个外部存储实例。 ?   从Android 1.0开始,写操作受权限WRITE_EXTERNAL_STORAGE保护。   从Android 4.1开始,读操作受权限READ_EXTERNAL_STORAGE保护。   从Android 4.4开始,应用可以管理在它外部存储上的特定包名目录,而不用获取WRITE_EXTERNAL_STORAGE权限。   比如,一个包名为com.example.foo的应用,可以自由访问外存上的Android/data/com.example.foo/目录。 ?   外部存储对数据提供的保护较少,所以系统不应该存储敏感数据在外部存储上。   特别地,配置和log文件应该存储在内部存储中,这样它们可以被有效地保护。 ?   对于多用户的情况,一般每个用户都会有自己独立的外部存储,应用仅对当前用户的外部存储有访问权限。 ?   getDataDirectory():用户数据目录。   getDownloadCacheDirectory():下载缓存内容目录。 ?   getExternalStorageDirectory():主要的外部存储目录。   但是这个目录很可能当前不能访问,比如这个目录被用户的PC挂载,或者从设备中移除,或者其他问题发生,你可以通过getExternalStorageState()来获取当前状态。   还有多用户或者多外部存储的情况,此文不再讨论。 ?   为了不污染用户的根命名空间,一般不会直接使用这个外部存储的根目录。   任何应用私有的文件的应该被放置在?Context.getExternalFilesDir返回的目录下,在应用被卸载的时候,系统会清理的就是这个目录。   另一些共享文件应该被放置在?getExternalStoragePublicDirectory(String)返回的目录中。   写这个路径需要?WRITE_EXTERNAL_STORAGE权限,读需要?READ_EXTERNAL_STORAGE权限,当然写权限默认包含了读权限。 ?   从KITKAT?即Android 4.4开始,如果你的应用只是需要存储一些内部数据,可以考虑使用 :   getExternalFilesDir(String)或者getExternalCacheDir(),它们不需要获取权限。 ?   getExternalStoragePublicDirectory(String?type)这个方法接收一个参数,表明目录所放的文件的类型,传入的参数是Environment类中的DIRECTORY_XXX静态变量,比如DIRECTORY_DCIM等。   注意:传入的类型参数不能是null,返回的目录路径有可能不存在,所以必须在使用之前确认一下,比如使用File.mkdirs创建该路径。 ?   getRootDirectory()得到Android的根目录。   isExternalStorageEmulated()设备的外存是否是用内存模拟的,是则返回true。(API Level 11)   isExternalStorageRemovable()设备的外存是否是可以拆卸的,比如SD卡,是则返回true。(API Level 9) ?   getExternalFilesDir(String?type)是应用在外部存储上的目录。   和Environment类的getExternalStoragePublicDirectory(String?type)方法类似,返回包含参数指定的特定类型文件的子目录。   getExternalCacheDir()是应用的在外部存储上的缓存目录。 ? ?  从Android 4.4这两个方法不需要读写权限,是针对于本应用来说,如果要访问其他应用的相关目录,还是需要声明读写权限。   Android 4.4之前的版本要访问的话还是要声明读写权限的,如果没有在manifest中写权限,上面两个get方法都会返回null。 ?   与上面两个方法形成对比的是下面两个方法:   getFilesDir()?   getCacheDir()   这两个方法得到的是内存上的目录。 ?   这些目录都是属于应用的,当应用被卸载的时候,里面的内容都会被移除,但是不要依赖于系统的操作。 ? package c

文档评论(0)

wuailuo + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档