检查Android是否具有摄像头

(转载)http://droidyue.com/blog/2014/06/14/check-camera-in-android/

技术小黑屋


通常我们进行摄像头操作,如扫描二维码需要判断是否有后置摄像头(Rear camera),比如Nexus 7 一代就没有后置摄像头,这样在尝试使用的时候,我们需要进行判断进行一些提示或者处理。

以下代码为一系列的方法,用来判断是否有前置摄像头(Front Camera),后置摄像头。

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

public class CameraUtils {
	/**
	 * 检测是否有前置摄像头
	 * @return
	 */
	public static boolean hasFrontFacingCamera() {
	    final int CAMERA_FACING_BACK = 1;
	    return checkCameraFacing(CAMERA_FACING_BACK);
	}
	
	/**
	 * 检测是否有后置摄像头
	 * @return
	 */
	public static boolean hasBackFacingCamera() {
	    final int CAMERA_FACING_BACK = 0;
	    return checkCameraFacing(CAMERA_FACING_BACK);
	}
	
	private static boolean checkCameraFacing(final int facing) {
	    if (getSdkVersion() < Build.VERSION_CODES.GINGERBREAD) {
	        return false;
	    }
	    final int cameraCount = Camera.getNumberOfCameras();
	    CameraInfo info = new CameraInfo();
	    for (int i = 0; i < cameraCount; i++) {
	        Camera.getCameraInfo(i, info);
	        if (facing == info.facing) {
	            return true;
	        }
	    }
	    return false;
	}

	public static int getSdkVersion() {
	    return android.os.Build.VERSION.SDK_INT;
	}
}

注意:由于getNumberOfCameras以及getCameraInfo均为API 9 引入,所以方法只适用于2.3及其以上。

延伸阅读:http://developer.android.com/reference/android/hardware/Camera.html http://developer.android.com/reference/android/hardware/Camera.CameraInfo.html

Others


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值