Android:如何检查设备是否已实现Camera2 api功能?

Viv*_*vek 13 android android-camera android-5.0-lollipop

那么,如何检查Android设备是否实现了Camera2 api功能?camera2 api中有许多新功能,例如手动控制.那么我如何能够以编程方式知道是否实现了哪些Camera2 api功能?

use*_*714 24

实际上,camera2 api仅支持API级别21.但只有这种检查是不够的.有些级别为21的设备,但仅部分支持摄像头2.要检查这一点,您应该检查CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL的值.它可以是FULL,LEGACY或LIMITED.点击此处查看详细信息:https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html

以下是如何获得它:

CameraManager manager = (CameraManager) activity.getSystemService(Context.CAMERA_SERVICE);

for (String cameraId : manager.getCameraIdList()) {
                    CameraCharacteristics characteristics
                            = manager.getCameraCharacteristics(cameraId);


    Log.d("Img", "INFO_SUPPORTED_HARDWARE_LEVEL " + characteristics.get(CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL));
 }
Run Code Online (Sandbox Code Playgroud)

  • 使用上面的代码,我们得到一些数值。因此,作为参考,LEGACY,LIMITED,FULL和LEVEL_3的数值分别为2,0,1和3。 (3认同)

rcs*_*ner 6

实际上,检查API版本21+将起作用.camera2 API,包括CameraManager系统的一部分,不依赖于硬件.因此,您可以随时询问s CameraManager的列表CameraDevice,然后您可以单独查询.

不过,我觉得你实际的意思是"我怎样才能知道我是否能设置的拍摄参数使用camera2 API手动?",这取决于你的设备上.这取决于您需要什么控件,但您可以通过获取REQUEST_AVAILABLE_CAPABILITIES 元数据字段来收集所需的信息.提示:寻找MANUAL_SENSOR.


Tob*_*eis 5

我还需要另一个项目来使用它,所以我写了一个小应用程序,可探究camera2的所有功能并显示手机上可用的功能:https : //play.google.com/store/apps/details? id=de.weis .camera2probe

您可以通过应用内电子邮件发送此报告。我列出了我在这里收到的所有报告:https : //github.com/TobiasWeis/android-camera2probe/wiki (该应用程序的代码也可以在此处找到,以防有人需要集成到自己的项目中)