我需要一个功能来检查前置摄像头是否存在,如果存在,则显示预览。 我找到了一些链接,但每个链接都谈到了一个特定的设备:
任何人都可以为此提供通用代码吗?或者也许是可以与所有设备一起使用的组合代码?
答案 0 :(得分:20)
对于API> = 9 ,您可以使用Camera
类:http://developer.android.com/reference/android/hardware/Camera.html查看是否有多个摄像头,并查询{{1} }
CameraInfo
getNumberOfCameras
:
http://developer.android.com/reference/android/hardware/Camera.CameraInfo.html
常量
int CAMERA_FACING_BACK相机的朝向与屏幕相反。
int CAMERA_FACING_FRONT摄像机的朝向与屏幕相同。
对于API> = 5 ,选项是阅读getCameraInfo
。前置摄像头的最大分辨率通常比后置摄像头低很多。
http://developer.android.com/reference/android/hardware/Camera.Parameters.html
答案 1 :(得分:11)
这是由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 :(得分:2)
是可能的。 http://developer.android.com/sdk/api_diff/9/changes/android.hardware.Camera.html
但在此之前,Android sdk没有任何通用API用于查找和使用第二台前置摄像头。
答案 3 :(得分:0)
我认为您可以循环浏览手机上的可用摄像头并查看facing摄像头信息以找到一个(但只有API级别9可用)
这个答案可以帮到你:How do I open the "front camera" on the Android platform?