我正在尝试获取SD卡中文档的一个字节。我所做的就是以下步骤;
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