允许用户在我的应用中选择图像,有时他们会选择错误的文件

时间:2014-06-12 19:57:57

标签: android android-intent android-activity onactivityresult

我的应用程序在我的应用程序中发现崩溃后,我希望在onActivityResult上有一个图像,但收到类似.pdf的内容。我理解我的代码应该在它崩溃之前做一个检查,以确保传回的数据确实是一个图像,但我认为指定一个mime类型就足够了。

我的代码:

//显示弹出窗口

Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);

此代码会将d​​ropbox,gallery,Google Drive等显示为选项。但即使Google Drive也允许您选择.pdf。我是否错误地设置了意图的类型?我是否坚持允许违规应用让用户选择pdf或其他文件类型?

2 个答案:

答案 0 :(得分:0)

即使系统可以为您验证文件扩展名,您仍然需要验证用户的数据。如果[潜在恶意]用户只是将.pdf更改为.jpg

,该怎么办?

答案 1 :(得分:0)

是的,这将会发生。因此,您需要在onActivityResult()中检查您获取图片URI的位置并检查.jpg,.png,.jpeg等扩展程序...然后只有您应导入文件,否则显示{{ 1}}或Toast