我想知道以下 android intents 是否在所有设备上都可用,或者它们是否仅在某些设备上可用,如 com.android.camera.action.crop
是?
从图库中选择图像的 Intent :
Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
从内置相机拍照的 Intent :
Intent(MediaStore.ACTION_IMAGE_CAPTURE);
最佳答案
不保证任何 Android 设备都支持任何特定的 Intent
任何特定用户的结构。例如,在 Android 4.3+ 平板电脑上使用受限配置文件,即使是具有相机应用程序的设备也可能不支持 ACTION_IMAGE_CAPTURE
对于特定配置文件,因为设备所有者不允许。
您可以使用 PackageManager
和 resolveActivity()
查看设备是否支持特定的 Intent
对于 startActivityForResult()
对于当前用户。或者,您可以 catch ActivityNotFoundException
将被提出。
除此之外,大多数 用户的大多数 设备应该支持ACTION_PICK
Intent
(或者,更好的是,ACTION_GET_CONTENT
)。支持 ACTION_IMAGE_CAPTURE
的设备会少一些,仅仅是因为并非所有设备都有摄像头。
关于Android MediaStore.ACTION_IMAGE_CAPTURE 和 Intent.ACTION_PICK,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22545997/