Hallo!
Ich habe eine kleine Taschenlampe programmiert. Die Lampe an sich funktioniert auch so wie sie soll aber jetzt wollte ich noch eine Funktion einbauen, dass wenn man auf die Züruck-Taste drückt sich die App nicht gleich schließt, sondern erst eine Nachricht angezeigt wird dass man zum schließen nochmal auf zurück drücken muss.
Aber irgendwie funktioniert das nicht.
Hier der Code:
Ich habe eine kleine Taschenlampe programmiert. Die Lampe an sich funktioniert auch so wie sie soll aber jetzt wollte ich noch eine Funktion einbauen, dass wenn man auf die Züruck-Taste drückt sich die App nicht gleich schließt, sondern erst eine Nachricht angezeigt wird dass man zum schließen nochmal auf zurück drücken muss.
Aber irgendwie funktioniert das nicht.
Hier der Code:
Java:
package com.example.androlamp;
import android.app.Activity;
import android.content.pm.PackageManager;
import android.hardware.Camera.Parameters;
import android.os.Bundle;
import android.os.Handler;
import android.view.KeyEvent;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.CompoundButton;
import android.widget.Switch;
import android.widget.Toast;
public class MainActivity extends Activity {
Switch s1;
android.hardware.Camera cam;
Parameters param;
boolean licht;
boolean pressedBackKey;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
s1 = (Switch) findViewById(R.id.switch1);
s1.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(isChecked == true) {
if(getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH)) {
if(cam == null) {
cam = android.hardware.Camera.open();
}
param = cam.getParameters();
param.setFlashMode(Parameters.FLASH_MODE_TORCH);
cam.setParameters(param);
cam.startPreview();
licht = true;
} else {
Toast.makeText(getApplicationContext(), "your cellphone do not have a flash!", Toast.LENGTH_SHORT).show();
}
}
if(isChecked == false) {
lichtaus();
}
}
});
}
public void lichtaus() {
if(licht == false) {
cam = android.hardware.Camera.open();
}
param = cam.getParameters();
param.setFlashMode(Parameters.FLASH_MODE_OFF);
cam.setParameters(param);
cam.stopPreview();
licht = false;
}
@Override
protected void onPause() {
if (licht == true) {
lichtaus();
cam.release();
}
super.onPause();
}
@Override
protected void onResume() {
s1.setChecked(false);
super.onResume();
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK ) {
if (pressedBackKey = false) {
pressedBackKey = true;
Toast.makeText(getApplicationContext(), "Zurücktaste doppelt drücken um App zu schließen", Toast.LENGTH_SHORT).show();
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
pressedBackKey = false;
}
} , 3000);
} else if (pressedBackKey = true) {
onBackPressed();
}
}
return true;
}
}