有人知道如何在android设备中获取摄像头的传感器尺寸吗?
谢谢
最佳答案
从api级别21开始是可能的。从文档中(https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#SENSOR_INFO_PHYSICAL_SIZE):
公共静态最终密钥传感器信息物理大小
全像素阵列的物理尺寸。[…]
单位:毫米
我用这种代码。小心,可能不止一个摄像头:
import android.hardware.camera2.CameraAccessException;
import android.hardware.camera2.CameraCharacteristics;
import android.hardware.camera2.CameraManager;
private SizeF getCameraResolution(int camNum)
{
SizeF size = new SizeF(0,0);
CameraManager manager = (CameraManager) getSystemService(Context.CAMERA_SERVICE);
try {
String[] cameraIds = manager.getCameraIdList();
if (cameraIds.length > camNum) {
CameraCharacteristics character = manager.getCameraCharacteristics(cameraIds[camNum]);
size = character.get(CameraCharacteristics.SENSOR_INFO_PHYSICAL_SIZE);
}
}
catch (CameraAccessException e)
{
Log.e("YourLogString", e.getMessage(), e);
}
return size;
}
注意,需要捕获异常
CameraAccessException
。别忘了将
<uses-sdk android:minSdkVersion="21" />
添加到您的清单中。