用于Lollipop的SD卡访问API Android?

时间:2015-04-15 09:36:22

标签: android android-5.0-lollipop android-sdcard

在另一个问题中

How to use the new SD card access API presented for Android 5.0 (Lollipop)?

介绍了如何使用新API访问“外部SD卡”。

但是,我如何知道结果活动中返回的实际目录?

我的意思是功能

public void onActivityResult(int requestCode, int resultCode, Intent resultData) {
    if (resultCode == RESULT_OK) {
        Uri treeUri = resultData.getData();
        DocumentFile pickedDir = DocumentFile.fromTreeUri(this, treeUri);

...

如何获得“Uri treeUri”指向的实际路径?

谢谢, 弗朗西斯。

2 个答案:

答案 0 :(得分:0)

使用

FileUtil.getFullPathFromTreeUri(treeUri, this)

https://github.com/jeisfeld/Augendiagnose/blob/f24ddd7d3da4df94552ca0a9e658399602855a67/AugendiagnoseIdea/augendiagnoseLib/src/main/java/de/jeisfeld/augendiagnoselib/util/imagefile/FileUtil.java

获得完整路径。使用

分隔路径
final String[] seperated = treeUri.toString().split("\\/");

获取当前目录名称。

答案 1 :(得分:0)

您无法获取绝对路径,因为Documents API旨在从您那里抽象出来。

但是,root.getChildren().add(index, new TreeItem<String>(new OpenBank().getAction(), Icons.ACTION.getIcon())); 确实包含文件的相对路径。尝试使用Uri#getPathSegments()

检查Uri