在Android 10中擦除数据后保留文件

在Android 10中擦除数据后保留文件,android,android-file,android-10.0,Android,Android File,Android 10.0,我目前使用的应用程序需要手动设置(输入一些信息)设备配置。在卸载应用程序或擦除应用程序数据时,需要将此信息写入不应删除的文件中(用户支持要求,因为在某些情况下,用户可以指示用户执行此操作) 有一个非常类似的老问题,但答案现在已被弃用,并且没有发布最新的答案 所以问题是,考虑到Android 10上对Environment.getExternalStorageDirectory()的反对,我们如何以编程方式写入/读取在卸载应用程序或擦除数据时不会被删除的文件 对于什么是值得的,我们不能依赖,因为

我目前使用的应用程序需要手动设置(输入一些信息)设备配置。在卸载应用程序或擦除应用程序数据时,需要将此信息写入不应删除的文件中(用户支持要求,因为在某些情况下,用户可以指示用户执行此操作)

有一个非常类似的老问题,但答案现在已被弃用,并且没有发布最新的答案

所以问题是,考虑到Android 10上对
Environment.getExternalStorageDirectory()
的反对,我们如何以编程方式写入/读取在卸载应用程序或擦除数据时不会被删除的文件

对于什么是值得的,我们不能依赖,因为用户没有谷歌帐户配置


感谢您在设定30岁的目标时进行总结

对于Android 10设备:请求旧版外部存储,以像往常一样访问外部存储


谷歌在安卓11设备上退后一步:使用下载、图片、电影、文档、DCIM等目录。所有用户的读写访问权限。Android操作系统对于在这些文件夹中创建的文件使用正确的扩展名非常挑剔。

使用SAF让用户选择合适的目录。虽然设备设置中有用户交互,但这需要通过编程实现,如问题中所述。只需请求清单中的旧外部存储,您就可以像往常一样使用外部存储。这是不正确的。文档中明确指出:
当应用程序以Build.VERSION\u CODES.Q为目标时,此方法返回的路径将不再可供应用程序直接访问。
确实如此。但重复一次:如果您请求清单中的遗留外部存储,它就是。您能给我指出任何支持该声明的参考、文档或示例吗?我似乎只发现Android 11上有更多的限制,或者不同的API来完成相同的事情MediaStore。*你能先确认这些目录是可写的吗?我想你现在应该已经试过了。很抱歉耽搁了,我已经可以试一下了,而且确实可以在安卓10和11上运行。我在答案中添加了代码。奇怪的是,这在不请求旧的外部存储的情况下工作。虽然我怀疑我在安卓10上的测试,因为该设备运行的是一些企业管理软件,但它完全可以在安卓9和11上运行,我在个人设备上进行了测试。此外,没有参考资料,因为它们只是我的经验。