当前位置: 首页 > 知识库问答 >
问题:

检测所有摄像头android

公西兴业
2023-03-14

我有一个应用程序,它使用Camera2 API来预览相机。我想在手机的镜头之间进行选择。在我的代码中,我使用了以下代码:

CameraManager manager = (CameraManager) activity.getSystemService(Context.CAMERA_SERVICE);
String[] ids = manager.getCameraIdList();

当我使用我的galaxy s10时,它有2个前置摄像头(普通和宽)和3个后置摄像头,我只从经理那里得到4个ID:

0- regular rear
1- regular front
2- wide rear
3- wide front

为什么我没有3后置微距相机。

这些问题出现在我所有的手机上,手机背面有一个以上的摄像头

我怎样才能得到所有的后摄像头?

TNX领先

共有2个答案

詹弘毅
2023-03-14

根据文档,您只能获得逻辑摄像机。

public String[] getCameraIdList ()

Return the list of currently connected camera devices by identifier, including cameras that may be in use by other camera API clients.
Non-removable cameras use integers starting at 0 for their identifiers, while removable cameras have a unique identifier for each individual device, even if they are the same model.
This list doesn't contain physical cameras that can only be used as part of a logical multi-camera device.

Returns
String[]    The list of currently connected camera devices. This value cannot be null.

要获取物理摄像机,请使用此

参考:

https://source.android.com/devices/camera/multi-camera

Camera2在Android API 29中用两个物理流替换一个逻辑流

锺离昂然
2023-03-14

我发现在某些设备上,并非所有摄像机都返回到管理器中。getCameraIdList() 您可以尝试使用cameraManager获取CameraCharacteristics。getCameraCharacteristics(cameraId) String[]possiblecameraaids={“0”、“1”、“2”、“3”、“4”、“5”、“6”、“7”、“8”}

 类似资料:
  • 以下程序演示如何使用系统相机检测脸部并使用JavaFX窗口显示脸部。 参考以下示例代码 - 执行上面示例代码,得到以下结果 - 系统提示:头像太丑,无法显示…

  • 我们希望使用后摄像头进行扫描,并选择正确的后摄像头-主摄像头,而不是宽镜头摄像头。 较新的移动设备(例如三星galaxy s10)有几个前后摄像头。调用enumerateDevices()时,我们会得到前后摄像头的列表。我们想从后摄像机列表中选择主摄像机。我们可以使用约束来选择后置摄像机(面向:“环境”),但我们不知道如何区分每个设备的摄像机是主摄像机还是宽镜头摄像机。

  • 表情测试 图片转文字 相框 拍摄图片

  • 摄像头用于采集图像和影像信息,通过模块间的组合完成各种创意活动。 净重量:8.1g 体积:24×24×22mm 参数 分辨率:1280×720 像素大小:3.4um×3.4um 最大图像传输速率:全尺寸 @ 30fps 视场角:100° 镜片结构:4G+IR 焦比:2.97 有效焦距:2.4mm 功耗:100uA(待机)~240mW(工作) 电源:USB总线电源 抗跌落能力:1m 工作温度:-30

  • Dlib有一个非常方便、快速和高效的目标检测程序,我想做一个类似于这个例子的酷脸跟踪例子。 OpenCV,这是广泛支持,有视频捕捉模块,这是相当快的(五分之一秒的快照相比,1秒或更多的调用一些程序,唤醒网络摄像头和获取图片)。我将此添加到Dlib中的人脸检测器Python示例中。 如果您直接显示和处理OpenCV VideoCapture输出,它看起来很奇怪,因为OpenCV显然存储BGR而不是R

  • camera 对象提供对设备默认摄像头应用程序的访问。 方法: camera.getPicture 参数: cameraSuccess cameraError cameraOptions camera.getPicture 选择使用摄像头拍照,或从设备相册中获取一张照片。图片以base64编码的字符串或图片URI形式返回。 简单的范例: navigator.camera.getPicture( c