Sameer Zinzuwadia
Sameer Zinzuwadia

Reputation: 3285

Android: how to check the flash light is available on device?

How I check the flash light available on device?also want to know how can I On/Off the flash light? I have put the code but not working right now? I search out this
http://gitorious.org/rowboat/frameworks-base/commit/eb9cbb8fdddf4c887004b20b504083035d57a15f
http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.2_r1.1/com/android/server/LightsService.java#LightsService

Please can tell which I should use?
Thank You.

Upvotes: 6

Views: 10415

Answers (4)

reza.cse08
reza.cse08

Reputation: 6178

boolean hasFlash =this.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH);

or

public boolean hasFlash() {
        if (camera == null) {
            return false;
        }

        Camera.Parameters parameters = camera.getParameters();

        if (parameters.getFlashMode() == null) {
            return false;
        }

        List<String> supportedFlashModes = parameters.getSupportedFlashModes();
        if (supportedFlashModes == null || supportedFlashModes.isEmpty() || supportedFlashModes.size() == 1 && supportedFlashModes.get(0).equals(Camera.Parameters.FLASH_MODE_OFF)) {
            return false;
        }

        return true;
    }

Upvotes: 5

user3104537
user3104537

Reputation:

First you get supported flash modes:

camera = Camera.open(i);    // Introduced in API level 9
parameters = camera.getParameters();
String[] flashModes = parameters.getSupportedFlashModes();

And then you check if this array contains the correct constants like: "auto", "on", "off".

More info in: http://developer.android.com/reference/android/hardware/Camera.Parameters.html#FLASH_MODE_AUTO

Upvotes: 3

Yog Guru
Yog Guru

Reputation: 2104

This can help full to turn on/off flash light of device. This is give me satisfaction, Hope be useful to you also.

Turn On camera Flash

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

Turn Off camera Flash

camera = Camera.open();
Parameters p = camera.getParameters();
p.setFlashMode(Parameters.FLASH_MODE_OFF);
camera.setParameters(p);
camera.stopPreview();

Put this Permission in manifest file

<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />

For more detail you can go HERE.

Upvotes: 0

Al Sutton
Al Sutton

Reputation: 3924

You can use the following

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

which will return true if a flash is available, false if not.

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

Upvotes: 22

Related Questions