android是如何打开除前后摄像头外的摄像头的?
android打开摄像头用的是camera类,最终调用到HAL层的camera部分,get_num_of cameras返回成员变量,而这个成员变量只在构造函数处赋值为常量2.所以有上面的疑问。
已知小米pad是可以打开usb摄像头的。
android是如何打开除前后摄像头外的摄像头的?
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
2条回答 默认 最新
Horson Liu 2025-05-18 10:28关注在某些老版本或厂商定制的 Camera HAL 实现中,get_number_of_cameras() 是直接返回 2 的,这导致了应用只能看到前后摄像头。
在 Android 中,应用程序通常通过以下几种方式与摄像头交互:- Camera 类(旧 API)
已被弃用(自 Android 5.0 起)。
通过 Camera.open(int cameraId) 打开前后摄像头。
底层调用到 HAL 层的 camera_module_t 接口。
getNumberOfCameras() 返回的是硬编码为 2 的值(前 + 后),这是很多早期厂商实现的默认行为。 - Camera2 API
更现代的 API,提供了更细粒度的控制。
使用 CameraManager 来枚举摄像头设备。
通过 CameraManager.getCameraIdList() 获取所有摄像头 ID。
这个列表是由 HAL 提供的,理论上可以包含任意数量的摄像头(包括外接摄像头)。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报- Camera 类(旧 API)