Android前置摄像头

我需要一个function来检查前置摄像头是否存在,如果是这样 – 显示预览。 我find了几个链接,但他们每个人都谈论一个特定的设备:

  • 如何在Android平台上打开“前置摄像头”?
  • http://developer.android.com/reference/android/hardware/Camera.html#open(int
  • LG Optimus 2X速度的前置摄像头
  • 如何在Samsung Galaxy S上使用前置摄像头

任何人都可以提供一个通用的代码呢? 或者可能是一个可以与所有设备兼容的组合代码?

Solutions Collecting From Web of "Android前置摄像头"

对于API> = 9 ,您可以使用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摄像头的面向与屏幕相同。


对于API> = 5 ,选项是读取public List<Camera.Size> getSupportedPictureSizes () 。 前置摄像头通常比后置摄像头具有更低的最大分辨率。

http://developer.android.com/reference/android/hardware/Camera.Parameters.html

这是由kcoppock张贴,但我想有人会遇到这个消息以及某个时候。 我亲自testing过,在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来查找和使用第二台前置摄像头。

我认为你可以通过手机上的可用摄像头进行循环,然后检查面向摄像头的信息以find一个(但只能在API级别9上使用)

这个答案可以帮助你: 我如何打开Android平台上的“前置摄像头”?