在android中有两种众所周知的方法可以使用android的默认意图来获取图像。
图库意图
要从图库中选择图片,我们通常会这样做:
Intent intent =new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, 1);
相机意图
要打开相机并拍摄图像,我们通常会这样做:
Intent intent=new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, 2);
最后我们在onActivityResult回调中获得结果。
问题
我注意到一些聊天应用程序(众所周知的)使用自定义图库选取器和自定义相机捕获方法。
他们不使用android的默认方法,这似乎是更简单的方法。
所以我的问题是,所有Android设备(主要是android 4及以上版本)是否支持上述2种方法?
我需要确保所有设备都支持上述方法。
感谢。
答案 0 :(得分:1)
特定设备存在一些问题,尤其是三星,小米。但他们正在变得更好。 一般情况下,它应该可以在每台设备上使用,但现实才能实现。
实施例
Camera intent not working with Samsung Galaxy S3
Selecting image from gallery not working on Redmi Note 4
Camera intent for ACTION_IMAGE_CAPTURE does not appear on Samsung Galaxy Nexus(4.0.2)
答案 1 :(得分:0)
是的,这是Android操作系统的基本功能,因此可以在所有Android设备中构建。
但是在android版本的marshmallow之后你必须要求相应的许可。
答案 2 :(得分:0)
是的,这些意图是标准Android的一部分。确实,在一些非常罕见的情况下,设备制造商搞砸了这一点,但最糟糕的情况是最终用户安装第三方相机应用程序或可以使用Gallery的应用程序。在这种情况下,系统允许最终用户选择满足意图的应用程序之一。其中一些第三方应用程序不完全符合协议,或者有意想不到的副作用。
这就是为什么最佳做法是在应用程序中实现自定义相机实现,以满足所有希望您经常使用相机的应用程序。