0

I am trying to enable the Flash Light in SamSung mobile but its not getting turned on. here is my code

Camera mycam = Camera.open();
Parameters p = mycam.getParameters();
p.setFlashMode(Parameters.FLASH_MODE_OFF);// = mycam.getParameters();
p.setFlashMode(Parameters.FLASH_MODE_ON); 
mycam.setParameters(p);

<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.FLASHLIGHT"/>

And the permissions in manifest is above:

Thanks in Advance Ranganath.T.M

Ziem
  • 6,579
  • 8
  • 53
  • 86

1 Answers1

1

This is the workaround I use on my Samsung Galaxy Ace for the flashlight. I essentially continuously auto-focus the camera, because the LED only turns on during auto-focus.

AutoFocusCallback autoFocusCallback = new AutoFocusCallback();
autoFocusCallback.setHandler(handler, message);
//Log.d(TAG, "Requesting auto-focus callback");
camera.autoFocus(autoFocusCallback);


class AutoFocusCallback implements Camera.AutoFocusCallback {

  private Handler autoFocusHandler;
  private int autoFocusMessage;

  void setHandler(Handler autoFocusHandler, int autoFocusMessage) {
    this.autoFocusHandler = autoFocusHandler;
    this.autoFocusMessage = autoFocusMessage;
  }

  public void onAutoFocus(boolean success, Camera camera) {
      Message message = autoFocusHandler.obtainMessage(autoFocusMessage, success)}
      autoFocusHandler.sendMessage(message)
      autoFocusHandler = null;
  }  
}

TORCH_MODE_ON would be preferable, but since it isn't supported, this is the best way I've found, if you simply must have the flashlight.

Chris Bye
  • 1,028
  • 7
  • 17