当前位置: 首页 > 知识库问答 >
问题:

无法从android[duplicate]中的文档中获取正确的uri格式

甄云
2023-03-14

我试图获取文档的URI时出错。"content://com.android.providers.downloads.documents/document/158“这是我得到的URI。我无法从这个URI获得路径。在这里,我共享了我的代码。

RC_PICK_DOCUMENT -> {
              when (resultCode) {
                  Activity.RESULT_OK ->
                      processDocument(data?.data)
              }
          }

共有1个答案

闻安宜
2023-03-14

在onActivityResult中处理此代码,

 if (requestCode == Constants.RESULT_PICK_DOC
                && resultCode == Activity.RESULT_OK
            ) {
                try {
                    if (data != null) {
                    val uri = data.data
                    // Here You get URI path
                    val path = FileUtils().getDocPath(activity!!, uri!!)?.toUri()?.path

                    }
                } catch (e: Exception) {
                    e.printStackTrace()
                }

            }

下面是FileUtils类中的getDocPath()函数

class FileUtils {
    fun getDocPath(context: Context, uri: Uri): String? {
        var path: String? = null
        val projection =
            arrayOf(MediaStore.Files.FileColumns.DATA)
        val cursor =
            context.contentResolver.query(uri, projection, null, null, null)
        if (cursor == null) {
            path = uri.path
        } else {
            cursor.moveToFirst()
            val column_index = cursor.getColumnIndexOrThrow(projection[0])
            path = cursor.getString(column_index)
            cursor.close()
        }
        return if (path == null || path.isEmpty()) uri.path else path
    }
}
 类似资料:
  • 因此,我在Firestore上创建了一个包含文档列表的数据,我想在调用Android活动时随机检索一个文档。 例如,我在收藏“人物”中有以下一组文档 亚历克斯 阿披舍克 南迪尼 南希 在我的Android活动中,我有一个文本视图,它将随机显示每个集合名称,每当我调用该活动时,比如当我打开活动时,它将在文本视图上显示“Nancy”,再次打开时,它会显示“Abhishek!” 希望你理解我的问题,这将

  • 我想看GMail的邮件正文。 我能够获得所有详细信息,例如发件人姓名,电子邮件和主题等,但不能获得电子邮件正文。 我知道有特定的Gmail的API可以做到这一点,但IMAP不应该工作吗? 从PHP的文档中可以看出: 我尝试了<code>$message=imap_fetchbody($inbox,$email_number,“1.2”)和

  • 我有两个按钮,第一个是下一个,另一个是上一个。我想在文本视图中显示一个日期作为月份的日期。文本视图中应该看到的日期是该周的第一天。 当按下下一个按钮时,它必须显示下一周开始的第一天,而按下上一个按钮时,它必须显示上一周开始的第一天。 代码如下。 我对Android系统比较熟悉。

  • 问题内容: 我有这个HTML代码: 问题是我收到消息“错误”。这意味着iframe的文档未正确获取,而GetDoc函数实际返回的是父文档。 如果您告诉我在哪里犯错,我将不胜感激。(我想将文档托管在IFrame中。) 谢谢。 问题答案: 您应该可以使用以下代码访问IFRAME中的文档: 但是,如果框架中的页面是从其他域(例如google.com)加载的,则将无法执行此操作。这是因为浏览器的“相同来源

  • 我使用以下代码从PDFA1格式的pdf中提取图像,但我无法获得图像。 我能够使用上述代码提取非标准PDF的图像,但无法提取PDFA1-a格式PDF的图像。似乎是这样的 没有返回我甚至尝试过的图像页面。getResources(),但仍然无法获取任何图像。我甚至尝试过使用itext,但它仍然没有给我任何图像。 如果我尝试使用以下代码将PDF页面转换为图像 这些图像似乎没有与之关联的元数据,因此我仍然

  • 我想从接收正常文件路径,如下所示: 这个文件也存在,但我不能得到它。我在这里看到了一些建议获得路径的问题,如下所示: 但此方法返回以下异常: 因此,我在这里收到的: 如何将文件转换为字符串: