【发布时间】:2020-12-13 15:09:28
【问题描述】:
我正在尝试在 sdcard 中获取文档的一个字节。我所做的正是以下内容;
1-) 我选择文件。
fun openFile() {
val intent = Intent(Intent.ACTION_OPEN_DOCUMENT).apply {
addCategory(Intent.CATEGORY_OPENABLE)
type = "application/pdf"
}
startActivityForResult(intent, PICK_PDF_FILE)
}
2-) 我现在有一个 URI。我正在尝试将其转换为文件。然后我尝试获取字节。
override fun onActivityResult(requestCode: Int, resultCode: Int, resultData: Intent?) {
super.onActivityResult(requestCode, resultCode, resultData)
if (requestCode == PICK_PDF_FILE && resultCode == Activity.RESULT_OK) {
resultData?.data?.also { documentUri ->
contentResolver.takePersistableUriPermission(
documentUri,
Intent.FLAG_GRANT_READ_URI_PERMISSION
)
var file = documentUri.toFile(); // I am trying to convert URI to FILE type. //ERROR LINE
Log.d("test" , file.readBytes().toString()) // I'm trying to read the bytes.
}
}
}
但是这个错误:
Caused by: java.lang.IllegalArgumentException: Uri lacks 'file' scheme:
content://com.android.externalstorage.documents/document/primary%3ADCIM%2Ftest.pdf
【问题讨论】:
标签: java android android-studio kotlin illegalargumentexception