1. 程式人生 > >Android 檢查當前裝置是否有攝像頭

Android 檢查當前裝置是否有攝像頭

直接上程式碼

package com.app.emdk;

import android.hardware.Camera;
import android.os.Build;

/**
 * Created by WangXM on 2016/7/13.
 */
public class CameraProvider {

    private static boolean checkCameraFacing(final int facing) {
        if (getSdkVersion() < Build.VERSION_CODES.GINGERBREAD) {
            return false;
        }
        final int cameraCount = Camera.getNumberOfCameras();
        Camera.CameraInfo info = new Camera.CameraInfo();
        for (int i = 0; i < cameraCount; i++) {
            Camera.getCameraInfo(i, info);
            if (facing == info.facing) {
                return true;
            }
        }
        return false;
    }

    /**
     * 檢查裝置是否有攝像頭
     * @return
     */
    public static boolean hasCamera() {
        return hasBackFacingCamera() || hasFrontFacingCamera();
    }

    /**檢查裝置是否有後置攝像頭
     * @return
     */
    public static boolean hasBackFacingCamera() {
        final int CAMERA_FACING_BACK = 0;
        return checkCameraFacing(CAMERA_FACING_BACK);
    }

    /**檢查裝置是否有前置攝像頭
     * @return
     */
    public static boolean hasFrontFacingCamera() {
        final int CAMERA_FACING_BACK = 1;
        return checkCameraFacing(CAMERA_FACING_BACK);
    }

    public static int getSdkVersion() {
        return android.os.Build.VERSION.SDK_INT;
    }
}
由於getNumberOfCameras以及getCameraInfo均為API 9 引入,所以方法只適用於2.3及其以上。 PS:貌似現在找個4.0以下的手機也有點難了,這個問題可以直接忽略...