我正在通过使用ACTION_GET_CONTENT Intent开发一种使用.pdf,.doc和.docx文件的功能。
您可能猜到我需要从Intent返回的uri获取Real文件路径。 我已经搜索了至少三天,以找出使用URI给出文件或真实路径的代码。但是在这些代码中,只有从“下载”或“最近”或内部或其他文件中选择的文件才起作用。但是找不到适用于所有选项的代码,即“最近使用”,“下载”,内部存储,SD卡,“驱动器”和“放置”框。
这些是我尝试过的解决方案。 https://www.dev2qa.com/how-to-get-real-file-path-from-android-uri/
How to get the Full file path from URI
甚至
我想要在Android Lollipop和Android Pie之间的android版本中工作的代码。
这是我的意图
Intent intent1 = new Intent(Intent.ACTION_GET_CONTENT);
intent1.addCategory(Intent.CATEGORY_OPENABLE);
intent1.setType(mimeTypes.length == 1 ? mimeTypes[0] : "*/*");
if (mimeTypes.length > 0) {
intent1.putExtra(Intent.EXTRA_MIME_TYPES, mimeTypes);
}
startActivityForResult(Intent.createChooser(intent1, "ChooseFile"), REQUEST_CODE_PICK_FILE);
每次我测试这些代码时,
Caused by: java.lang.IllegalStateException: Couldn't read row 0, col -1 from CursorWindow. Make sure the Cursor is initialized correctly before accessing data from it.
java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1024, result=-1, data=Intent { dat=content://com.android.externalstorage.documents/document/primary:Download/62-2.pdf flg=0x1 }} to activity {com.xxx.xxx.xxx}: java.lang.IllegalStateException: Couldn't read row 0, col -1 from CursorWindow. Make sure the Cursor is initialized correctly before accessing data from it.