【安卓基础】Android直接通过路径来操作其他应用的私有目录,可以吗? | 您所在的位置:网站首页 › aibuilder安卓可以下载吗 › 【安卓基础】Android直接通过路径来操作其他应用的私有目录,可以吗? |
在上篇文章【安卓基础】一文搞懂Android历代版本文件访问权限变化我们对同一个应用的的文件访问权限做了比较。 那么不同应用之间文件访问又有什么限制呢?我们准备分二到三篇文件来阐述。 这篇文章,主要来看下不同系统版本下,我们直接通过路径来访问其它应用的内部存储、外部存储私有目录,看看能不能访问以及不同系统版本的区别。 可能说得有些啰嗦,心急的同学可以直接看大红字哟。 项目地址:https://github.com/codersth/android-foundation-samples/blob/master/app/src/main/java/com/codersth/android/foundation/filesystem/InterAppFileAccessActivity.kt 1.1 api < 19我们在api18的虚拟机上,当前应用的私有目录下放一个文件。 可以看到,直接通过路径访问自己的私有目录是可以读取文件的。 我们看到同样可以访问。 不妨再延伸下,试试操作其他应用的内部存储。 // 读取其他应用内部存储的文件(确保手机上其他应用的私有目录下有对应文件) Log.d(TAG, "onCreate:其他应用的私有目录 ${readFile("/data/data/com.example.demo/files/hello.txt")}") // 删除其他应用内部存储的文件 Log.d(TAG, "onCreate:其他应用的私有目录 ${File("/data/data/com.example.demo/files/hello.txt").delete()}")结果竟然成功了,就问你意不意外,惊不惊喜
从运行结果来看,api=30是彻底不能操作其他应用的私有目录和内部存储了。 由此我们可以给出结论了: 总结:api 24开始,应用A无法直接通过路径访问应用B的内部存储,android 30开始,应用A无法直接通过路径访问应用B的内部存储和私有目录。 |
CopyRight 2018-2019 实验室设备网 版权所有 |