我想获得公共目录文件的访问权限,因为不存储:图像、音频和视频!我需要存储:文档(例如: 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?
附注:我看到了:getExternalStoragePublicDirectory在Android中被弃用 -我的问题没有答案
发布于 2019-09-28 14:08:38
我怎样才能在android Q中做到这一点?
使用ACTION_CREATE_DOCUMENT
允许用户选择一个位置,然后将内容存储在您获得的Uri
上。
或者,使用ACTION_OPEN_DOCUMENT_TREE
允许用户选择一棵树(例如目录)。您可以使用返回到Uri
中的DocumentFile.fromTreeUri()
来创建子文档。在每种情况下,您都会得到一个Uri
,您可以使用它来存储内容。
给定一个Uri
,您可以使用ContentResolver
和openOutputStream()
将内容写入Uri
标识的位置。
这个示例Java应用程序 (和它的Kotlin对应)演示了如何处理文件和内容Uri
值。我使用ACTION_OPEN_DOCUMENT
来允许用户选择现有的文本文件,或者使用ACTION_CREATE_DOCUMENT
来允许用户创建一个新的文本文件。
https://stackoverflow.com/questions/58146751
复制相似问题