Camera2 getCameraCharacteristics 返回有问题的值
Camera2 getCameraCharacteristics Returning Problematic Values
我在 Camera2Basic 示例代码的 createCameraPreviewSession 函数末尾添加的代码片段有问题。
我有以下代码片段可将相机特征打印到控制台:
CameraManager manager = (CameraManager) getContext().getSystemService(Context.CAMERA_SERVICE);
CameraCharacteristics characteristics = manager.getCameraCharacteristics(mCameraId);
List<CameraCharacteristics.Key<?>> keys = characteristics.getKeys();
for (CameraCharacteristics.Key key: keys){
//Log.i(key.getName(), (String)characteristics.get(key));
//Log.i("hello", "there");
System.out.println("Key: " + key + "- " + key.getName() + "; Value: " + characteristics.get(key));
}
并且大部分 returns 好的值:
Key: android.sensor.info.pixelArraySize; Value: 4128x3096
但对于许多值,结果既不合理也不为空,但似乎存在一些编码问题:
Key: android.control.aeAvailableModes; Value: [I@829b672
我已经尝试测试并忽略空值并重新转换为字符串。
理想情况下,我需要清楚地打印出完整的值集,或者测试值是否相关而不是在列表中获取垃圾值。
CONTROL_AE_AVAILABLE_MODES entry is an integer array (int[]). If you call toString on it, you get the default Java output for an array's toString() call. See 了解详情。
您可以使用 Arrays.toString() 来获取您可能想要的输出(我假设为“[1,3,5,3]”),但是您必须对哪些键进行硬编码使用它。
我在 Camera2Basic 示例代码的 createCameraPreviewSession 函数末尾添加的代码片段有问题。
我有以下代码片段可将相机特征打印到控制台:
CameraManager manager = (CameraManager) getContext().getSystemService(Context.CAMERA_SERVICE);
CameraCharacteristics characteristics = manager.getCameraCharacteristics(mCameraId);
List<CameraCharacteristics.Key<?>> keys = characteristics.getKeys();
for (CameraCharacteristics.Key key: keys){
//Log.i(key.getName(), (String)characteristics.get(key));
//Log.i("hello", "there");
System.out.println("Key: " + key + "- " + key.getName() + "; Value: " + characteristics.get(key));
}
并且大部分 returns 好的值:
Key: android.sensor.info.pixelArraySize; Value: 4128x3096
但对于许多值,结果既不合理也不为空,但似乎存在一些编码问题:
Key: android.control.aeAvailableModes; Value: [I@829b672
我已经尝试测试并忽略空值并重新转换为字符串。 理想情况下,我需要清楚地打印出完整的值集,或者测试值是否相关而不是在列表中获取垃圾值。
CONTROL_AE_AVAILABLE_MODES entry is an integer array (int[]). If you call toString on it, you get the default Java output for an array's toString() call. See
您可以使用 Arrays.toString() 来获取您可能想要的输出(我假设为“[1,3,5,3]”),但是您必须对哪些键进行硬编码使用它。