Bonjour les gars, je suis en train de construire ma première application pour les téléphones Android. C'est une lampe de poche avec quelques fonctionnalités. J'ai écrit le code pour le bouton On/Off, mais avec mon code exigeant le bouton On/Off ne fonctionne qu'une seule fois et je ne sais pas comment le réparer pour travailler plusieurs fois. Voici mon code:Impossible de faire fonctionner ma lampe de poche plus d'une fois - android
public class MainActivity extends ActionBarActivity {
ImageButton OnOff;
Button SOS, Pallette;
private Camera camera;
boolean isFlashOn;
boolean isFlashOff;
boolean hasFlash;
Parameters params;
MediaPlayer mp;
String blink = "01010101";
long blinkDelay = 50;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// declare flash switch button
OnOff = (ImageButton) findViewById(R.id.bOnOff);
// declare sos flash button
SOS = (Button) findViewById(R.id.bSOS);
// Now we check if our device has flash so we can turn on
hasFlash = getApplicationContext().getPackageManager()
.hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH);
if (!hasFlash) {
// if our device doesn't have flash we show an error message
// after pressing "OK" on error message we close the application
AlertDialog alert = new AlertDialog.Builder(MainActivity.this)
.create();
alert.setTitle("Error");
alert.setMessage("Sorry but your device doesn't support flash");
alert.setButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
finish();
}
});
alert.show();
return;
}
// Now we get the Camera
getCamera();
// Display button image
toggleButtonImage();
OnOff.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (isFlashOn) {
// turn off flash
turnOffFlash();
} else {
// turn on flash
turnOnFlash();
}
}
});
private void getCamera() {
if (camera == null) {
try {
camera = Camera.open();
params = camera.getParameters();
} catch (RuntimeException e) {
Log.e("Camera Error", e.getMessage());
}
}
}
private void turnOnFlash() {
if (!isFlashOn) {
if (camera == null || params == null) {
return;
}
params = camera.getParameters();
params.setFlashMode(Parameters.FLASH_MODE_TORCH);
camera.setParameters(params);
camera.startPreview();
isFlashOn = true;
}
toggleButtonImage();
}
private void turnOffFlash() {
if (isFlashOn) {
if (camera == null || params == null) {
return;
}
params = camera.getParameters();
params.setFlashMode(Parameters.FLASH_MODE_OFF);
camera.setParameters(params);
camera.stopPreview();
isFlashOff = false;
}
toggleButtonImage();
}
private void toggleButtonImage() {
if (isFlashOn) {
OnOff.setImageResource(R.drawable.on);
} else {
OnOff.setImageResource(R.drawable.off);
}
}
@Override
protected void onDestroy() {
super.onDestroy();
}
@Override
protected void onRestart() {
super.onRestart();
}
@Override
protected void onStop() {
super.onStop();
if (camera != null) {
camera.release();
camera = null;
}
}
}
partagez votre erreur logcat – Fahim