【问题标题】:SD-Card access API Android for Lollipop?棒棒糖的 SD 卡访问 API Android?
【发布时间】:2015-06-21 04:57:24
【问题描述】:

在另一个问题中

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

解释了如何使用新的API访问“外部SDCard”。

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

我的意思是在功能上

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”指向的实际路径?

谢谢, 弗朗西斯。

【问题讨论】:

  • 您的意思是要获取所选目录的绝对路径吗?
  • 是的,这就是我需要的。我的用户界面显示了当前目录,所以我需要知道它。

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


【解决方案1】:

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

但是,treeUri 确实包含文件的相对路径。尝试使用Uri#getPathSegments()检查Uri

【讨论】:

    【解决方案2】:

    使用

    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("\\/");
    

    获取当前目录名称。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-15
      相关资源
      最近更新 更多