在android

时间:2016-03-10 11:46:15

标签: android android-intent file-manager

我正在尝试创建一个应用程序,用户可以使用Android设备的文件管理器选择文件。这是我正在使用的代码:

 boolean isKitKat = Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT;
                    if (isKitKat)
                    {
                        Intent uploadIntent = new Intent();
                        uploadIntent.setType("*/*");
                        uploadIntent.setAction(Intent.ACTION_GET_CONTENT);
                        startActivityForResult(uploadIntent, REPORT_USING_FILE_MANAGER);

                    }
                    else
                    {
                        Intent uploadIntent = new Intent(Intent.ACTION_GET_CONTENT);
                        uploadIntent.setType("*/*");
                        startActivityForResult(uploadIntent, REPORT_USING_FILE_MANAGER);
                    }

我只希望用户能够选择图像文件(.jpg,.png等)或.pdf文件。我该如何设置此限制?

2 个答案:

答案 0 :(得分:5)

您正在使用loadIntent.setType("*/*");选择所有类型的文件。

您必须使用MIME类型过滤它。

例如,如果您想选择jpeg文件,那么

loadIntent.setType("image/jpeg");

有些MIME类型如下,

image/jpeg
audio/mpeg4-generic
text/html
audio/mpeg
audio/aac
audio/wav
audio/ogg
audio/midi
audio/x-ms-wma
video/mp4
video/x-msvideo
video/x-ms-wmv
image/png
image/jpeg
image/gif
.xml ->text/xml
.txt -> text/plain
.cfg -> text/plain
.csv -> text/plain
.conf -> text/plain
.rc -> text/plain
.htm -> text/html
.html -> text/html
.pdf -> application/pdf
.apk -> application/vnd.android.package-archive

如果您有任何问题,请告诉我。

答案 1 :(得分:1)

您需要实施" photoPickerIntent"用于图像文件

nil

之后应该做以下事情:

Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
photoPickerIntent.setType("image/*");
startActivityForResult(photoPickerIntent, SELECT_PHOTO);