android: How to check flash if on/off/auto?
android, android-camera, camera, eclipse, java
Solution
You can check if flash is AUTO, ON, or OFF as:
Camera.Parameters p= mCamera.getParameters();
if(p.getFlashMode().equals(android.hardware.Camera.Parameters.FLASH_MODE_ON))
{
//DO STUFF...
}
else if(p.getFlashMode().equals(android.hardware.Camera.Parameters.FLASH_MODE_OFF))
{
//DO STUFF......
}
else if(p.getFlashMode().equals(android.hardware.Camera.Parameters.FLASH_MODE_TORCH))
{
//DO STUFF......
}
else if(p.getFlashMode().equals(android.hardware.Camera.Parameters.FLASH_MODE_AUTO))
{
//DO STUFF......
}
else
{
//DO STUFF.....
}
Problem
So I'm trying to have a button where users can choose between flash on/off/auto. This button is within my camera preview activity, but I'm not sure how to check certain parameters with one button. ``` //Flash Button final Button flashButton = (Button) findViewById(id.camera_flash); flashButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub if(mCamera != null){ Parameters p = mCamera.getParameters(); p.setFlashMode(Parameters.FLASH_MODE_AUTO); mCamera.setParameters(p); mCamera.startPreview(); flashButton.setText("AUTO"); Log.e("Torch","Torch On"); }else{ Parameters p = mCamera.getParameters(); p.setFlashMode(Parameters.FLASH_MODE_OFF); mCamera.setParameters(p); mCamera.release(); mCamera=null; flashButton.setText("OFF"); }// maybe another one for ON } ``` Right now its setting if `mCamera!=null` but then how do I check if flash is AUTO, ON, or OFF? I'm thinking that there maybe a SWITCH instead? I'm trying to keep these settings in one button, so its kind of a toggle. Can someone help me with this? Thanks in advance. UPDATED CODE ``` //Flash Button final Button flashButton = (Button) findViewById(id.camera_flash); flashButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Parameters p = mCamera.getParameters(); // TODO Auto-generated method stub if(p.getFlashMode() == android.hardware.Camera.Parameters.FLASH_MODE_ON){ p.setFlashMode(Parameters.FLASH_MODE_OFF); mCamera.setParameters(p); mCamera.startPreview(); flashButton.setText("Off"); Log.e("Torch","MODE OFF"); }else if(p.getFlashMode() == android.hardware.Camera.Parameters.FLASH_MODE_OFF){ p.setFlashMode(Parameters.FLASH_MODE_TORCH); mCamera.setParameters(p); mCamera.release(); mCamera=null; flashButton.setText("TORCH"); Log.e("Torch","MODE TORCH"); }else if(p.getFlashMode() == android.hardware.Camera.Parameters.FLASH_MODE_AUTO){ p.setFlashMode(Parameters.FLASH_MODE_ON); mCamera.setParameters(p); mCamera.startPreview(); flashButton.setText("ON"); Log.e("Torch","MODE ON"); }else if(p.getFlashMode() == android.hardware.Camera.Parameters.FLASH_MODE_TORCH){ p.setFlashMode(Parameters.FLASH_MODE_ON); mCamera.setParameters(p); mCamera.startPreview(); flashButton.setText("AUTO"); Log.e("Torch","MODE AUTO"); }else{ p.setFlashMode(Parameters.FLASH_MODE_AUTO); mCamera.setParameters(p); mCamera.startPreview(); flashButton.setText("AUTO"); Log.e("Torch","MODE AUTO"); } } ```