Android 4.4 KitKat限制第三方应用的SD卡读写权限,怎么解决?
2014-06-09 14:18
603 查看
安卓系统手机有一套自己的存储管理制度:几乎任何类型的存储设备都被称为“外部存储”(external storage),包括内部的NAND闪存,这个叫做“主要存储”(primary storage),而其他的一切都是“次要存储”(secondary storage),比如SD卡。
随着安卓系统的不断升级,第三方应用对存储的访问权限控制经过了多次调整,详细三说起来就复杂了,这里重点说最早、最常用的写入要求权限“WRITE_EXTERNAL_STORAGE”,它可以让应用写入主要存储(内置闪存),但不能写入次要存储(SD卡)。
安卓4.4里边,对于对所有外部存储,其上的文件属性都改为基于文件夹结构,应用无需获取WRITE_EXTERNAL_STORAGE权限,即可在外部存储上管理与自己包名相关的文件夹。举例来说,如果应用的包名是name com.example.foo,那么外部存储上的Android/data/com.example.foo/文件夹就是它的了,可随意访问。
另外需要特别注意的是,应用卸载的时候,在SD卡上创建的相应文件夹、数据都会被同时完全删除,所以如果有照片、文档等个人资料,应当避免这么做
应用程序在运行的过程中如果需要向手机上保存数据,一般是把数据保存在SDcard中的。
大部分应用是直接在SDCard的根目录下创建一个文件夹,然后把数据保存在该文件夹中。
这样当该应用被卸载后,这些数据还保留在SDCard中,留下了垃圾数据。
如果你想让你的应用被卸载后,与该应用相关的数据也清除掉,该怎么办呢?
通过Context.getExternalFilesDir()方法可以获取到 SDCard/Android/data/你的应用的包名/files/ 目录,一般放一些长时间保存的数据
通过Context.getExternalCacheDir()方法可以获取到 SDCard/Android/data/你的应用包名/cache/目录,一般存放临时缓存数据
如果使用上面的方法,当你的应用在被用户卸载后,SDCard/Android/data/你的应用的包名/ 这个目录下的所有文件都会被删除,不会留下垃圾信息。
而且上面二个目录分别对应 设置->应用->应用详情里面的”清除数据“与”清除缓存“选项
随着安卓系统的不断升级,第三方应用对存储的访问权限控制经过了多次调整,详细三说起来就复杂了,这里重点说最早、最常用的写入要求权限“WRITE_EXTERNAL_STORAGE”,它可以让应用写入主要存储(内置闪存),但不能写入次要存储(SD卡)。
安卓4.4里边,对于对所有外部存储,其上的文件属性都改为基于文件夹结构,应用无需获取WRITE_EXTERNAL_STORAGE权限,即可在外部存储上管理与自己包名相关的文件夹。举例来说,如果应用的包名是name com.example.foo,那么外部存储上的Android/data/com.example.foo/文件夹就是它的了,可随意访问。
另外需要特别注意的是,应用卸载的时候,在SD卡上创建的相应文件夹、数据都会被同时完全删除,所以如果有照片、文档等个人资料,应当避免这么做
应用程序在运行的过程中如果需要向手机上保存数据,一般是把数据保存在SDcard中的。
大部分应用是直接在SDCard的根目录下创建一个文件夹,然后把数据保存在该文件夹中。
这样当该应用被卸载后,这些数据还保留在SDCard中,留下了垃圾数据。
如果你想让你的应用被卸载后,与该应用相关的数据也清除掉,该怎么办呢?
通过Context.getExternalFilesDir()方法可以获取到 SDCard/Android/data/你的应用的包名/files/ 目录,一般放一些长时间保存的数据
通过Context.getExternalCacheDir()方法可以获取到 SDCard/Android/data/你的应用包名/cache/目录,一般存放临时缓存数据
如果使用上面的方法,当你的应用在被用户卸载后,SDCard/Android/data/你的应用的包名/ 这个目录下的所有文件都会被删除,不会留下垃圾信息。
而且上面二个目录分别对应 设置->应用->应用详情里面的”清除数据“与”清除缓存“选项
相关文章推荐
- 为什么 Android 4.4 KitKat 限制第三方应用的 SD 卡读写权限?
- Android4.4版本后 限制第三方应用读写外置SD卡的权限问题
- 【Android存储权限问题】AS开发的应用,manifest配置了读写SD卡权限,安装却无法创建文件夹
- 解决Android 5.1限制外置SD卡写入权限的问题
- Android 4.4以上第三方应用不能插入短信的解决办法
- 快速解决设置Android 23.0以上版本对SD卡的读写权限无效的问题
- 解决设置Android 23.0以上版本对SD卡的读写权限无效的问题
- android下SD卡与U盘无读写权限问题的解决办法
- android 读写sd卡的权限设置
- android应用:今天发现不能向sd卡写文件,可我明明加了权限啊
- android 读写sd卡的权限设置
- Android 4.4 SD卡文件读写变化
- 让你的短信应用迎接Android 4.4(KitKat)
- Android中对sd卡的读写权限问题
- 做好准备,让你的短信应用迎接Android 4.4(KitKat)
- android 读写sd卡的权限设置
- 做好准备,让你的短信应用迎接Android 4.4(KitKat) 推荐
- Android -- 读写文件到内部ROM,SD卡,SharedPreferences,文件读写权限
- android使用mount挂载/system/app为读写权限,删除或替换系统应用
- 好准备,让你的短信应用迎接Android 4.4(KitKat)