android - 如何在 Android 设备中获取相机传感器尺寸?

标签 android camera android-camera

谁能知道如何在 android 设备中获取相机的传感器尺寸?

谢谢

最佳答案

从 API 级别 21 开始是可能的。来自文档 (https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#SENSOR_INFO_PHYSICAL_SIZE):

public static final Key SENSOR_INFO_PHYSICAL_SIZE

The physical dimensions of the full pixel array. [...]

Units: Millimeters

我用的就是这种代码。当心,可能不止一台相机:

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" />到你的 list 。

关于android - 如何在 Android 设备中获取相机传感器尺寸?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8104252/

相关文章:

android - 如何在 android 中启用 ALOGD?

Android,同时打开前后摄像头

android - System.TypeLoadException : Parent class vtable failed to initialize, 由于 : VTable setup of type AndroidX. SwipeRefreshLayout.Widget.SwipeRefreshLayout

ios - Xcode模拟器中相机的用途

android - setRotation(90) 以纵向模式拍照在三星设备上不起作用

android - 无法在 fragment 中启动 qrCode 相机扫描仪

android - 在 Android 中解析嵌套的 JSON 对象

Android 市场上的 Android 应用程序统计信息净用户/已安装

c++ - OpenCV + WebCam 导致崩溃(写入时内存访问冲突)

Android:在没有 SurfaceView 的情况下从未调用过 onPreviewFrame