我想访问公共目录文件,但不能存储:图像,音频和视频! 我需要存储:文档(例如:doc,pdf,bak,zip等)。 即使我的应用程序将被卸载,我也需要将这些文档保留在用户设备上。而且我需要用户可以从其他应用访问这些文档文件。
在早期版本的android中,对于documents文件夹,我可以简单地写下下一行:
File myDirectory = new File(Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_DOCUMENTS), "My documents");
if (!myDirectory.exists()) {
if(myDirectory.mkdirs()){
// directory exists, can place any files here
}
}
如何在android Q中做到这一点? 还是没有办法,我只需要告诉用户我的应用程序根本不支持Android 10?
p.s。 我看到这个: getExternalStoragePublicDirectory deprecated in Android Q -我的问题没有答案
答案 0 :(得分:1)
如何在android Q中做到这一点?
使用ACTION_CREATE_DOCUMENT
允许用户选择一个位置,然后将您的内容存储在您获得的Uri
上。
或者,使用ACTION_OPEN_DOCUMENT_TREE
允许用户选择树(例如目录)。您可以将返回的Uri
与DocumentFile.fromTreeUri()
一起使用,以创建子文档。在每种情况下,您都可以使用Uri
来存储内容。
给定Uri
,您可以使用ContentResolver
和openOutputStream()
将内容写入Uri
所标识的位置。
This sample Java app(和its Kotlin counterpart)演示了如何使用文件和内容Uri
的值。我使用ACTION_OPEN_DOCUMENT
允许用户选择现有的文本文件,或者使用ACTION_CREATE_DOCUMENT
允许用户创建新的文本文件。