我很想知道每个设备上是否有以下Android意图,或者它们仅在com.android.camera.action.crop
的某些设备上可用?
意图从图库中选择图片:
Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
意图从内置相机拍照:
Intent(MediaStore.ACTION_IMAGE_CAPTURE);
答案 0 :(得分:1)
无法保证任何Android设备都支持任何特定用户的任何特定Intent
结构。例如,对于Android 4.3及平板电脑上受限制的配置文件,即使是拥有相机应用的设备也可能不支持ACTION_IMAGE_CAPTURE
特定配置文件,因为设备所有者不允许这样做。
您可以使用PackageManager
和resolveActivity()
来查看设备是否支持当前用户Intent
的特定startActivityForResult()
。或者,您可以捕获将被提升的ActivityNotFoundException
。
除此之外,大多数用户的大多数设备应该支持ACTION_PICK
Intent
(或者,更好的是ACTION_GET_CONTENT
) 。少得多的设备将支持ACTION_IMAGE_CAPTURE
,因为并非所有设备都有相机。