首页 > 解决方案 > 是否可以使用 Intent.ACTION_CREATE_DOCUMENT 将Extra() 添加到 Intent?

问题描述

是否可以向具有 ACTION_CREATE_DOCUMENT 作为操作的意图添加额外内容?

这是我创建意图的方式:

// Request code for creating a PDF document.
const val CREATE_FILE = 1

private fun createFile(pickerInitialUri: Uri) {
    val intent = Intent(Intent.ACTION_CREATE_DOCUMENT).apply {
        addCategory(Intent.CATEGORY_OPENABLE)
        type = "application/pdf"
        putExtra(Intent.EXTRA_TITLE, "invoice.pdf")
        // Set extra here
        putExtra("url", url)

        // Optionally, specify a URI for the directory that should be opened in
        // the system file picker before your app creates the document.
        putExtra(DocumentsContract.EXTRA_INITIAL_URI, pickerInitialUri)
    }
    startActivityForResult(intent, CREATE_FILE)
}

我在onActivityResult(requestCode: Int, resultCode: Int, data: Intent?)方法中获得了额外的东西。

我像这样获得我的额外内容:

val extra = data?.getStringExtra("url")

但额外的总是null

标签: androidkotlin

解决方案


我在 onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) 方法中获得了额外内容。

这适用于几乎为零的Intent操作和响应它们的应用程序。它不适用于ACTION_CREATE_DOCUMENT.


推荐阅读