Ciao a tutti,
stavo provando a seguire un tutorial per imparare a programmare android, nello specifico stavo provando a fare l'applicazione semplice che accende e spenge il flash, con questo codice
codice:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if(this.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH)){
t = new Toast(this);
t.makeText(this, "FLASH SUPPORTATO", Toast.LENGTH_LONG).show();
}else{
t=new Toast(this);
t.makeText(this, "FLASH NON SUPPORTATO", Toast.LENGTH_LONG).show();
}
camera=Camera.open();
tb=(Button) findViewById(R.id.button);
tb.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
p=camera.getParameters();
if(!FlashOn){
p.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
camera.setParameters(p);
FlashOn=true;
}else{
p.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
camera.setParameters(p);
FlashOn=false;
}
}
});
Il problema è che quando la provo sul mio LG Nexus 5 mi appare il toast per il flash supportato ma alla pressione del pulsante non succede niente (il flash non si accende). Avevo letto che era un problema del mio telefono che serve una condizione da aggiungere al codice nel ramo dell'if, questa
codice:
try {
camera.setPreviewDisplay(SurfaceTexture(0));
} catch (IOException e) {
e.printStackTrace();
}
ma con questa mi da l'errore Method call expected su SurfaceTexture(0).
Come posso risolvere?
Grazie mille a tutti