我希望能够分别选择图片(JPG,PNG)和GIF(gif)文件。这适用于大多数图库应用程序和文件管理器,但不包括Google相册应用程序。当我使用Google相册应用程序选择图像或gif时,所有图像都会显示,即JPG,PNG,GIF,BMP等。如何告诉Google照片仅允许选择特定类型的文件?
以下是我的代码:
如果有其他方法(可能只针对Google照片),请作为答案分享。我找不到任何相关问题和适当的答案。我想仅使用系统应用程序来选择内容。
以下是我的代码:
val contentPicker = activity.registerForActivityResult(
ActivityResultContracts.GetContent()
) { uri: Uri? ->
// Use Picked URI
}
val mime = when {
MediaType.isPhoto(mediaType) -> "image/*" // or image/jpg or image/png
MediaType.isGif(mediaType) -> "image/gif"
else -> throw RuntimeException("Wrong Media Type to pick: $mediaType")
}
contentPicker.launch(mime)
如果有其他方法(可能只针对Google照片),请作为答案分享。我找不到任何相关问题和适当的答案。我想仅使用系统应用程序来选择内容。
编辑(2021年11月23日)
即使我使用以下意图打开文件应用程序,用户仍然可以转到侧边栏并选择照片应用程序。文件应用程序会阻止选择gif / heic图像。但是,当从文件应用程序中打开照片应用程序时,用户可以无限制地选择gif / heic图像。
fun getPickPhotoIntent(): Intent {
val pickIntent = Intent(Intent.ACTION_GET_CONTENT)
pickIntent.addCategory(Intent.CATEGORY_OPENABLE)
pickIntent.type = "image/jpg"
val mimeTypes = arrayOf("image/bmp", "image/jpeg", "image/png")
pickIntent.putExtra(Intent.EXTRA_MIME_TYPES, mimeTypes)
pickIntent.putExtra(Intent.EXTRA_LOCAL_ONLY, true)
return pickIntent
}