1

我希望用户能够从他们的媒体库中选择照片,但不希望他们能够选择视频。我无法将它们限制为只选择一张照片。当我使用打开图库应用程序时

new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI)

然后他们可以选择照片和视频。有没有办法限制他们只选择照片?

4

2 回答 2

5

为此,您还需要使用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 上是这样。

于 2011-11-21T21:13:10.150 回答
1

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

于 2011-11-21T21:24:14.577 回答