Java 内容URI和本地化
我正在编写一个应用程序,其中有一个功能,用户可以选择一个文件夹来保存图像。用户选择此选项一次,以后图像将保存在后台,无需用户干预 我正在使用Java 内容URI和本地化,java,android,Java,Android,我正在编写一个应用程序,其中有一个功能,用户可以选择一个文件夹来保存图像。用户选择此选项一次,以后图像将保存在后台,无需用户干预 我正在使用ACTION\u OPEN\u DOCUMENT\u树让用户选择一个文件夹 (或其他内容提供商): 这一切都很好,我从活动结果中正确地获得了一个Uri: @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { if (resultCo
ACTION\u OPEN\u DOCUMENT\u树
让用户选择一个文件夹
(或其他内容提供商):
这一切都很好,我从活动结果中正确地获得了一个Uri:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == Activity.RESULT_OK) {
if (requestCode == DirectoryPickerRequest) {
Uri treeUri = data.getData();
mDirectory.setText(treeUri.toString());
}
}
}
我的问题是Uri返回如下内容:
content://com.android.externalstorage.documents/tree/primary%3AOutput%2FDirectory
这很好,但是如何以任何本地化的方式向用户显示?我希望用户能够在点击Save之前确认位置。例如,如果它是一个文件,我想在本例中向他们显示/Output/Directory/They/Selected“。我的理解是,它不一定是一个文件,所以我不能假装它是一个文件,然后使用文件API来获取路径
是否有一种通用和本地化的方法来实现这一点
谢谢
但是我如何以任何本地化的方式向用户显示它呢
使用fromtreeeuri()
将其包装在DocumentFile
中,然后在DocumentFile
上调用getName()
。这将得到一个“显示名称”。它应该是用户能够识别的东西
例如,如果是一个文件,我想在本例中向他们显示“The/Output/Directory/They/Selected”
这是不可能的。文件系统上不需要以任何形式或方式存在此文档树。例如,他们可能正在Google Drive中创建一棵树
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == Activity.RESULT_OK) {
if (requestCode == DirectoryPickerRequest) {
Uri treeUri = data.getData();
mDirectory.setText(treeUri.toString());
}
}
}