正如我在标题中已经提到的,当我从GooglePlayStore卸载我的应用程序并重新安装它时,我发现了一些奇怪的问题。如您所见,应用缓存目录未被删除,该应用程序称为 net.example :
shell@gt510wifi:/storage/emulated/0/Android/data $ ls -la
-rw-rw---- root sdcard_rw 0 2015-01-01 01:01 .nomedia
...
drwxrwx--x u0_a80 sdcard_rw 2017-01-27 09:30 flipboard.boxer.app
drwxrwx--x u0_a197 sdcard_rw 2017-03-01 17:47 net.example
drwxrwx--x root sdcard_rw 2016-12-29 14:00 shaders
app is uninstalled, but cache and data directory persist:
shell@gt510wifi:/storage/emulated/0/Android/data $ ls -la
-rw-rw---- root sdcard_rw 0 2015-01-01 01:01 .nomedia
...
drwxrwx--x u0_a80 sdcard_rw 2017-01-27 09:30 flipboard.boxer.app
drwxrwx--x u0_a197 sdcard_rw 2017-03-01 17:47 net.example
drwxrwx--x root sdcard_rw 2016-12-29 14:00 shaders
shell@gt510wifi:/storage/emulated/0/Android/data $
来自文档:
注意:当用户卸载您的应用程序时,此目录和 其所有内容都将被删除。此外,系统媒体扫描仪没有 读取这些目录中的文件,因此无法访问它们 MediaStore内容提供商。因此,您不应该使用这些 最终属于用户的媒体目录,例如 使用您的应用拍摄或编辑的照片,或用户拥有的音乐 与您的应用程序一起购买 - 这些文件应该保存在公共场合 目录。
https://developer.android.com/guide/topics/data/data-storage.html#filesExternal
因此,在重新安装应用程序后,它似乎是导致许可错误的三星Bug:
E/BitmapFactory: Unable to decode stream: java.io.FileNotFoundException: /storage/emulated/0/Android/data/net.example/cache/FileCache/20b7a74246f5d80d92ba2e3d1918331cfb98fd11: open failed: EACCES (Permission denied)
也许有人在三星设备上遇到类似的Bug?
编辑:我已在Manifest中实现了"allowBackup:false"
,但问题仍然存在。