Hi ich wollte eine eigene Taschenlampe programmieren hab dies auch halbwegs Erfolgreich getan. Doch habe ich folgendes Problem:
Wenn ich die App öffne und die Lampe an und aus mache, sie dann schließe und die Handy Kamera, Snapchat oder änliches öffne kommt die Nachricht: Warnung Kamerafehler!
Ich schätze das die App die Kamera blockiert. Wie kann ich das beheben??
ActivityMain.java
import android.content.pm.PackageManager; import android.hardware.Camera; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.CompoundButton; import android.widget.Switch; import android.widget.Toast; import android.widget.ToggleButton;
public class MainActivity extends AppCompatActivity{
ToggleButton togglebtn;
Camera camera;
Camera.Parameters pam;
boolean lighton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
togglebtn = (ToggleButton) findViewById(R.id.toggleButton);
togglebtn.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked == true){
if (getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH)){
if (camera == null){
camera = Camera.open();
}
pam = camera.getParameters();
pam.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
camera.setParameters(pam);
camera.startPreview();
lighton = true;
}else{
Toast.makeText(getApplicationContext(), "keine LED-Lampe vorhanden", Toast.LENGTH_SHORT).show();
}
}
if (isChecked == false){
lightoff();
}
}
});
}
public void lightoff(){
if (lighton == false) {
camera = Camera.open();
}
pam = camera.getParameters();
pam.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
camera.setParameters(pam);
camera.stopPreview();
lighton = false;
}
@Override
protected void onPause(){
if (lighton == true) {
lightoff();
camera.release();
}
super.onPause();
}
@Override
protected void onResume() {
togglebtn.setChecked(false);
super.onResume();
}
}
Danke im vorraus:)