我希望用户能够从他们的媒体库中选择照片,但不希望他们能够选择视频。我无法将它们限制为只选择一张照片。当我使用打开图库应用程序时
new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI)
然后他们可以选择照片和视频。有没有办法限制他们只选择照片?
我希望用户能够从他们的媒体库中选择照片,但不希望他们能够选择视频。我无法将它们限制为只选择一张照片。当我使用打开图库应用程序时
new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI)
然后他们可以选择照片和视频。有没有办法限制他们只选择照片?
为此,您还需要使用Intent.setType(String type)
.
更新:看起来一次设置 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 上是这样。
另一种选择是使用ACTION_GET_CONTENT
而不是ACTION_PICK
. 它允许您设置所需的 MIME 类型,而无需指定 URI。