我希望用户能够从他们的媒体库中选择一张照片,但不希望他们能够选择一个视频。我无法限制他们只选择照片。当我使用
打开图库应用时new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI)
然后他们就可以选择照片和视频了。有没有办法限制他们只选择照片?
答案 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。