views:

94

answers:

1

I'm still pretty new to using Android, but I decided that my first application would be a simple flashlight app for my new Incredible. Unfortunately, it seems to be more difficult than I had originally thought.

It seems that there's no way to access the LEDs through the SDK, at least not without a bunch of weird hacks to make the phone pretend that it's taking a picture. Even then, I can only get the LEDs to turn on. They only turn off if the phone is put on hold, and doing so breaks all camera-related apps until the phone is rebooted.

So, I was wondering if accessing the LEDs through the NDK was possible, or if there was any other camera-related APIs that would seem to do what I want.

I've looked at other code for other flashlights, so it looks like it's a hardware-based problem. I figured I'd give up because it doesn't appear to be possible, but I thought I should ask here first on the off-chance somebody knows something that I don't.

+1  A: 

On the nexus one you can control the LED with native code by doing ioctl()'s on /dev/msm_camera/config0

In 2.1 your app will require root permissions, whereas in 2.2 it can request "Flashlight" permission from the OS.

See the code of lamppu: http://code.google.com/p/lamppu/source/browse/jni/lamppu.c

Aaron
That is awesome, but I was hoping there would be a way for 2.1 without needing root.
DeadlyBrad42