Android MediaStore.ACTION_IMAGE_CAPTURE和Intent.ACTION_PICK

时间:2014-03-20 21:56:58

标签: android android-intent android-camera android-gallery

我很想知道每个设备上是否有以下Android意图,或者它们仅在com.android.camera.action.crop的某些设备上可用?

意图从图库中选择图片:

Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);

意图从内置相机拍照:

Intent(MediaStore.ACTION_IMAGE_CAPTURE);

1 个答案:

答案 0 :(得分:1)

无法保证任何Android设备都支持任何特定用户的任何特定Intent结构。例如,对于Android 4.3及平板电脑上受限制的配置文件,即使是拥有相机应用的设备也可能不支持ACTION_IMAGE_CAPTURE特定配置文件,因为设备所有者不允许这样做。

您可以使用PackageManagerresolveActivity()来查看设备是否支持当前用户Intent的特定startActivityForResult()。或者,您可以捕获将被提升的ActivityNotFoundException

除此之外,大多数用户的大多数设备应该支持ACTION_PICK Intent(或者,更好的是ACTION_GET_CONTENT) 。少得多的设备将支持ACTION_IMAGE_CAPTURE,因为并非所有设备都有相机。