一、测试步骤
1、先检查默认SceneMode是否是SCENE_MODE_AUTO,一般meta data如果配置了availableSceneModes,默认都会是SCENE_MODE_AUTO
2、遍历supportedSceneModes,分别检测不同Scene Mode时FlashMode /FocusMode/ WhiteBalance ,出问题最多的是setParameters。
其中有一段逻辑是,遍历MTK_CONTROL_SCENE_MODE_OVERRIDES 配置,根据每个SCENE Mode配置的AE mode,来决定他的flashMode,具体逻辑就是如果AE mode是on,那flash mode就是off;如果SCENE Mode配置的AE Mode配置的不对容易引发问题;
http://10.16.20.15/alps-mp-p0-mp3/xref/frameworks/av/services/camera/libcameraservice/api1/client2/Parameters.cpp
[SOLUTION]
二、常见问题及其解法
=》meta datap配置不对,需要将MTK_CONTROL_SCENE_MODE_OVERRIDES中每个SCENE MODE的AE配置为ON
01-02 09:15:17.792 523 1575 E Camera2-Parameters: buildFastInfo: Unknown override AE mode: 0
12-31 17:23:07.922 2933 2933 E Camera2-Parameters: set: Requested flash mode "(null)" is not supported: No flash on device
12-31 17:23:08.073 23155 23172 I TestRunner: failed: testSceneMode(android.hardware.cts.CameraTest)
12-31 17:23:08.073 23155 23172 I TestRunner: ----- begin exception -----
12-31 17:23:08.074 23155 23172 I TestRunner: java.lang.RuntimeException: setParameters failed
12-31 17:23:08.074 23155 23172 I TestRunner: at android.hardware.Camera.native_setParameters(Native Method)
12-31 17:23:08.074 23155 23172 I TestRunner: at android.hardware.Camera.setParameters(Camera.java:2102)
12-31 17:23:08.074 23155 23172 I TestRunner: at android.hardware.cts.CameraTest.testSceneModeByCamera(CameraTest.java:2269)
12-31 17:23:08.074 23155 23172 I TestRunner: at android.hardware.cts.CameraTest.testSceneMode(CameraTest.java:2238)