由于Android在文件访问方面不同主要版本之间非常不一致,我感到有些失落。我尝试尽可能简单地描述问题:
My Company 使用商业原生 DRM 来保护我们提供的其他原生库。我们有一个 Licensing App,它调用了一些 Voodoo,最终得到了 /sdcard/companyname/LicenseContainer/ 中的 Licensing 文件。其他受保护的应用程序在本机代码中查看此目录,检查用户是否拥有有效的许可证。
然而,Android 10 更新完全使此工作流程无效,因为它仅提供scoped storage access
. 我们可以使用Storage Manager
授予访问权限来解决问题,不幸的是,现在也已弃用。
所以我现在的问题是:一个应用程序如何将文件保存到 /sdcard/FOLDER 上的某个位置
- 删除应用时未删除
- 其他应用程序可以在本机代码中访问
我对所有可能的解决方案(SAF、FileProvider 等)有点不知所措,它们经常调用一个应用程序向另一个应用程序授予权限。但是这些文件应该可以在没有安装的第一个应用程序的情况下访问。
我知道必须有一个解决方案,因为最近的 FileManagers(即Files by Google
)可以访问整个/sdcard/
目录。
什么是最简单,面向未来的路线,无需调用“黑客”之类的android:requestLegacyExternalStorage="true"