I need ONE function to check if front camera exist, and if so - show preview. I found a few links, but each of them talk about a specific device:
Can anyone provide a generic code for this? Or maybe a combined code that will work with all devices?
For APIs >=9, you can use the Camera
class: http://developer.android.com/reference/android/hardware/Camera.html to see if it has more than one camera, and query the CameraInfo
getNumberOfCameras
getCameraInfo
:
http://developer.android.com/reference/android/hardware/Camera.CameraInfo.html
Constants
int CAMERA_FACING_BACK The facing of the camera is opposite to that of the screen.
int CAMERA_FACING_FRONT The facing of the camera is the same as that of the screen.
For APIs >=5, an option is to read public List<Camera.Size> getSupportedPictureSizes ()
. Front facing cameras will usually have much lower max resolution than back cameras.
http://developer.android.com/reference/android/hardware/Camera.Parameters.html
This was posted by kcoppock, but I figured someome will come across this message as well sometime. I tested it personally, worked great on 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);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With