I am working on Turning ON/OFF Camera flashlights.
What i want to do is :
- When user clicks on Start LED button, it should start the Camera LED.
- Stop camera LED automatically after n Seconds eg. after 30seconds (Thats totally based on user settings).
- Stop Camera LED when user presses "Stop LED" Button
I have used ToggleButton for Starting and Stopping Camera LED.
Here is what i have done :
toggleLED.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
if (toggleLED.isChecked())
{
startLED();
}
else
{
stopLED();
}
}
});
So far i got success in turning ON and OFF Camera Lights.
For Turning On :
void startLED(){
Camera cam;
cam = Camera.open();
Parameters params = cam.getParameters();
params.setFlashMode(Parameters.FLASH_MODE_ON);
cam.setParameters(params);
cam.startPreview();
cam.autoFocus(new AutoFocusCallback() {
public void onAutoFocus(boolean success, Camera camera) {
}
});
}
For Turning OFF :
void stopLED() {
cam.stopPreview();
cam.release();
}
ToggleButton's function is working fine.
But what i want is : How can i shut off Camera Lights after n Seconds ?
Edited:
I tried using this & it completely works fine..But i want to know whether i am going in a correct way or not..
Runnable r = new Runnable()
{
public void run()
{
stopLED();
}
};
toggleLED.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// Perform action on clicks
if (toggleLED.isChecked())
{
startLED();
int onledseconds=pref.getInt(MySettings.SHUTOFF_PERIOD,0);
if(onledseconds!=0)
handler.postDelayed(r,ledonseconds);
}
else
{
stopLED();
}
}
});