如何查看隐藏的相机ID是否可以用来打开相机? (相机2 API)

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

很多设备(尤其是中国品牌的设备)隐藏了一些非原生应用程序的相机 ID。

还有一个解决方案可以访问更多摄像头:

for (id in 0..511) {
    try {
        val cameraId = id.toString()
        manager.getCameraCharacteristics(cameraId)
        // found a camera, no exception
    } catch (e: Throwable) {
        // ignore
    }
}

一些用户可以使用它来访问小米设备上的超广角镜头相机,然后他们只能访问主后置和前置摄像头。

但它并不总是有效,当您尝试使用

CameraManager.openCamera(...)
打开它们时,发现的隐藏摄像头的全部或部分可能无法在某些设备上工作,会有例外。

但是,如果有一种方法可以在使用之前检查此类相机ID是否可以用于打开相机

CameraManager.openCamera(...)
,它已经尝试使用相机进程并且需要授予相机权限?

android android-camera android-camera2
1个回答
0
投票

不,这些 ID 被隐藏的全部原因是它们没有真正遵循 API 规则。

制造商并未将这些相机报告为公开可用,因此它们没有经过 Android 合规性测试套件的合规性测试。它们的操作没有任何保证,也没有 API 可以查询它们,因为这样它们就会公开可用,并且必须通过这些合规性测试。

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