Android的默认图库和相机意图是否适用于所有设备?

问题描述 投票:1回答:3

在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种方法?

我需要确保所有设备都支持上述方法。

谢谢。

android android-camera android-gallery android-camera-intent
3个回答
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)


0
投票

是的,这是Android操作系统的基本功能,所以它是在所有Android设备中构建的。

但是在android版本的marshmallow之后你必须要求相应的许可。


0
投票

是的,这些意图是标准Android的一部分。确实,在一些非常罕见的情况下,设备制造商搞砸了这一点,但最糟糕的情况是最终用户安装第三方相机应用程序或可以使用Gallery的应用程序。在这种情况下,系统允许最终用户选择满足意图的应用程序之一。其中一些第三方应用程序不完全符合协议,或具有意外的副作用。

这就是为什么最佳做法是在应用程序中实现自定义相机,为所有希望您经常使用相机的应用程序。

© www.soinside.com 2019 - 2024. All rights reserved.