如何访问“厂家隐藏”的摄像头?

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

我的手机有三个摄像头,两个后置摄像头和一个前置摄像头,但是当我调用任一摄像头 API 时,它只报告 2 个摄像头(后置摄像头和前置摄像头之一),而第二个后置摄像头似乎丢失了?

enter image description here

int numCameras = Camera.getNumberOfCameras();
Log.d("tag","numCameras camera1:" + numCameras);
CameraManager camManager = (CameraManager) getSystemService(Context.CAMERA_SERVICE);
String[] cameraIds = camManager.getCameraIdList();
Log.d("tag","numCameras camera2:" + cameraIds.length);

每个 API 调用仅返回两个摄像头:

numCameras 相机1:2

numCameras 相机2:2

然而,第二个后置摄像头出现在一些第 3 方摄像头应用程序中,但显然被制造商“隐藏”了。我该如何访问此相机?

android sdk camera
1个回答
0
投票

很可能,相机根本没有列在

getCameraIdList
返回的相机 ID 集中,但
getCameraCharacteristics
openCamera
等方法可以使用隐藏 ID。 因此,这些应用程序可能只是尝试使用
getCameraCharacteristics
的小整数 ID,看看它们是否返回信息而不是无效 ID 异常。

但由于它们未列出,因此未经过 Android 合规性测试,并且可能不遵循 API 规范。 每个未列出的相机可能都有其不同的怪癖和限制;毕竟它们没有被列出是有原因的。 要可靠地使用它们,需要测试每个未列出的设备,并可能在每次主要操作系统更新后重新测试 - 对于它们根本没有任何保证。

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