簡體   English   中英

如何在android 11中從Uri獲取真實路徑

[英]How to get Real path from Uri in android 11

如何從 android 10 和 android 11 中的 URI 獲取真實路徑。 從意圖數據中獲取 Uri,即

 private val startForResult =
        registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result: ActivityResult ->
            if (result.resultCode == Activity.RESULT_OK) {
                val uri = result.data?.data
              
            }
        }

並打算獲取pdf文件

 val mimeType = "application/pdf"
            val intent = Intent(Intent.ACTION_GET_CONTENT)
            intent.type = mimeType
            intent.addCategory(Intent.CATEGORY_OPENABLE)
 if (packageManager.resolveActivity(sIntent, 0) != null) {
            // it is device with Samsung file manager
            chooserIntent = Intent.createChooser(sIntent, "Select an PDF File")
            chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, arrayOf(intent))
        } else {
            chooserIntent = Intent.createChooser(intent, "Select an PDF File")
        }
        try {
            chooserIntent.resolveActivity(packageManager)?.let {
                //  startActivityForResult(Intent.createChooser(this,"Pick MHT file"),1)
                startForResult.launch(chooserIntent)
            }
        } catch (ex: ActivityNotFoundException) {
            Toast.makeText(
                applicationContext,
                "No suitable File Manager was found.",
                Toast.LENGTH_SHORT
            ).show()
        }

您可以這樣做來獲取數據:

val inputStream = context.contentResolver.openInputStream(uri)

但我不確定您是否可以從 uri 獲得可用的文件路徑。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM