Android前置摄像头

问题描述

| 我需要一个功能来检查前置摄像头是否存在,如果存在,请显示预览。 我找到了一些链接,但每个链接都谈论一个特定的设备: 如何在Android平台上打开“前置摄像头”? http://developer.android.com/reference/android/hardware/Camera.html#open(int LG Optimus 2X Speed的前置摄像头 如何在三星galaxy S上使用前置摄像头 谁能为此提供通用代码?还是可能适用于所有设备的组合代码?     

解决方法

对于> = 9的API,您可以使用
Camera
类:http://developer.android.com/reference/android/hardware/Camera.html查看它是否具有多个摄像头,并查询
CameraInfo
getNumberOfCameras
getCameraInfo
: http://developer.android.com/reference/android/hardware/Camera.CameraInfo.html   常数      int CAMERA_FACING_BACK相机的朝向与屏幕的朝向相反。      int CAMERA_FACING_FRONT照相机的朝向与屏幕的朝向相同。 对于> = 5的API,一个选项是读取
public List<Camera.Size> getSupportedPictureSizes ()
。前置摄像头的最大分辨率通常比后置摄像头低得多。 http://developer.android.com/reference/android/hardware/Camera.Parameters.html     ,这是kcoppock发布的,但我认为某些时候也会有人看到此消息。我亲自进行了测试,在Froyo上表现出色。
PackageManager pm = getPackageManager();
boolean frontCam,rearCam;

//It would be safer to use the constant PackageManager.FEATURE_CAMERA_FRONT
//but since it is not defined for Android 2.2,I substituted the literal value
frontCam = pm.hasSystemFeature(\"android.hardware.camera.front\");

rearCam = pm.hasSystemFeature(PackageManager.FEATURE_CAMERA);
    ,在2.3中是可能的。 http://developer.android.com/sdk/api_diff/9/changes/android.hardware.Camera.html 但在此之前,Android SDK没有用于查找和使用第二个前置摄像头的任何通用API。     ,我认为您可以遍历电话上可用的摄像头,并检查对面的摄像头信息以查找其中一个(但仅在API级别为9时可用) 这个答案可以帮助您:如何在Android平台上打开“前置摄像头”?