是否有人建议处理来自ACTION_GET_CONTENT意图的URI结果的最佳方法?
我发现处理意图的应用程序提供了不同的数据。在三个不同的文件选择器中从下载目录中选择文件时,我得到了明显不同的结果。
我担心当我发布我的应用程序时,我会收到用户的回复,我在代码中没有预料到它会崩溃。鉴于我测试的三个工具都提供了不同的答案,我担心会在野外发生什么。
最终,我需要将所选文件的内容读入InputStream,并将数据(.xls通过jxl)读入我的数据结构。但首先我需要检查数据以获取文件名并验证数据类型,以便我可以向用户提供他们具有有效文件类型的反馈。
我可以使用ContentResolver通过KitKat下载库执行此操作,但是其他两个选项的代码都失败了。代码如下:
public void setFileUri(Uri fileUri) {
ContentResolver resolver = mFragment.getActivity().getContentResolver();
//Check if the file is of the right data type
if(resolver.getType(fileUri).equals(REQUIRED_FILE_TYPE)) {
mFileUri = fileUri;
mComplete = true;
}
Cursor cursor = resolver.query(fileUri, null, null, null, null);
cursor.moveToFirst();
((FileSelectFragment)mFragment).setFileNameView(cursor.getString(
cursor.getColumnIndex(OpenableColumns.DISPLAY_NAME)),
mComplete);
}
提前谢谢。