如何限制用户仅从Android的MediaStore中挑选照片?

时间:2011-11-21 21:00:33

标签: android video photo mediastore

我希望用户能够从他们的媒体库中选择一张照片,但不希望他们能够选择一个视频。我无法限制他们只选择照片。当我使用

打开图库应用时
new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI)
然后他们就可以选择照片和视频了。有没有办法限制他们只选择照片?

2 个答案:

答案 0 :(得分:5)

为此,您还需要使用Intent.setType(String type)将mime类型设置为“image / *”。

更新:看起来一次设置Uri和mime类型的正确方法是:

Intent intent = new Intent(Intent.ACTION_PICK);
intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/*");

更新2:这是因为当我们单独设置mime类型或数据uri时,看看会发生什么(取自Intent来源):

public Intent setType(String type) {
    mData = null;
    mType = type;
    return this;
}

public Intent setData(Uri data) {
    mData = data;
    mType = null;
    return this;
}

至少在API 2.2上也是如此。

答案 1 :(得分:1)

另一种选择是使用ACTION_GET_CONTENT代替ACTION_PICK。它允许您设置所需的MIME类型,而无需指定URI。