Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android front camera

Tags:

android

camera

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:

  • How do I open the "front camera" on the Android platform?
  • http://developer.android.com/reference/android/hardware/Camera.html#open(int
  • Front-facing camera on LG Optimus 2X Speed
  • How to use Front Facing Camera on Samsung Galaxy S

Can anyone provide a generic code for this? Or maybe a combined code that will work with all devices?

like image 406
OkyDokyman Avatar asked May 23 '11 14:05

OkyDokyman


2 Answers

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

like image 147
Aleadam Avatar answered Sep 30 '22 19:09

Aleadam


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);
like image 21
JustAGuy Avatar answered Sep 30 '22 18:09

JustAGuy