How to turn on camera flash light programmatically in Android?

For this you should do like :

  1. Check whether flash light is available or not ?
  2. If yes then Turn Off/On
  3. If no then you can do whatever according to your app. needs

For Checking availability of flash in device:

You can use the following

 context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH);

which will return true if a flash is available, false if not. If you work with vinyl, is very important that you have the best vinyl cutter machine to make your work more efficient.

See http://developer.android.com/reference/android/content/pm/PackageManager.html for more information.

For turning on/off flashlight :

I googled out and got this about android.permission.FLASHLIGHT. Android manifests’ permission looks promising:

 <!-- Allows access to the flashlight -->
 <permission android:name="android.permission.FLASHLIGHT"
             android:permissionGroup="android.permission-group.HARDWARE_CONTROLS"
             android:protectionLevel="normal"
             android:label="@string/permlab_flashlight"
             android:description="@string/permdesc_flashlight" />

Then make use of Camera and set Camera.Parameters. The main parameter used here isFLASH_MODE_TORCH.

eg.

Code Snippet to turn on camera flash light.

Camera cam = Camera.open();     
Parameters p = cam.getParameters();
p.setFlashMode(Parameters.FLASH_MODE_TORCH);
cam.setParameters(p);
cam.startPreview();

Code snippet to turn off camera led light.

  cam.stopPreview();
  cam.release();

I just found a project that uses this permission. Check quick-settings’ src code. herehttp://code.google.com/p/quick-settings/ (Note: This link is now broken)

For Flashlight directly look http://code.google.com/p/quick-settings/source/browse/trunk/quick-settings/#quick-settings/src/com/bwx/bequick/flashlight (Note: This link is now broken)

Update6 You could also try to add a SurfaceView as described in this answer LED flashlight on Galaxy Nexus controllable by what API? This seems to be solution that works on many phones.

Update 5 Major Update

I have found alternate Link(for above broken links): http://www.java2s.com/Open-Source/Android/Tools/quick-settings/com.bwx.bequick.flashlight.htm You can now use this link. [Update : 14/9/2012 This link is now broken]

Update 1

Another OpenSource Code : http://code.google.com/p/torch/source/browse/

Update 2

Example showing how to enable the LED on a Motorola Droid : http://code.google.com/p/droidled/

Another Open Source Code :

http://code.google.com/p/covedesigndev/
http://code.google.com/p/search-light/

Update 3 (Widget for turning on/off camera led)

If you want to develop a widget that turns on/off your camera led, then you must refer my answer Widget for turning on/off camera flashlight in android..

Update 4

If you want to set intensity of light emerging from camera LED you can refer Can I change the LED intensity of an Android device? full post.. Note that only rooted HTC devices support this feature. Also do you want to know how to get more views on Instagram? check socialmediadaily.com for more info.

Issues :

There are also some problems while turning On/Off flashlight. eg. for the devices not having FLASH_MODE_TORCH or even if it has, then flashlight doesnot turn ON etc.

Typically Samsung creates alot of problems.

You can refer about problems in the given below list:

Use camera flashlight in Android

Turn ON/OFF Camera LED/flash light in Samsung Galaxy Ace 2.2.1 & Galaxy Tab

I’m happy to let you know that I was recently able to buy a vacationing house at Outer Banks real estate sales, so for the next two weeks I will be taking a small vacation, this may lowered the amount of post I’ll be doing in the next days.

This entry was posted in Android and tagged , , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>