2014-12-17 7 views
5

Ho costruito un widget che utilizza la fotocamera per la sua torcia, funziona perfettamente all'accensione e allo spegnimento e lo rilascia quando le persone lo spengono, ma se lo accendo e poi vado alla fotocamera, Ovviamente si blocca l'app fotocamera, come faccio a rilasciare la fotocamera nel caso in cui un utente dimentica di spegnere la torcia? C'è un modo per rilevare quando una nuova app sta per essere avviata prima di chiamare sulla telecamera?come rilasciare la fotocamera quando la gente smette di usare il widget?

+0

possibile dublicate: http://stackoverflow.com/questions/16705487/how-to-release-camera-after-activity-ends-in-android –

+0

Ma questa non è un'applicazione, è un widget, non c'è su destroy, no on pause no nothing, ho bisogno di un evento quando le persone smettono di aver bisogno del mio widget in modo che non vadano alla telecamera e si blocchino. – Bbit

risposta

2

Sulla base della mia ricerca, questo è impossibile su dispositivi Android predefiniti, Samsung ha ottenuto questo risultato con una delle loro app, ma ciò è probabilmente dovuto al miglioramento delle funzionalità Android di base. Ciò significherebbe comunque che avrebbero bisogno di rilasciare una documentazione su come ciò è realizzato e funzionerebbe solo sui telefoni su cui hanno abilitato questa funzione.

Se qualcun altro ha una risposta che è effettivamente utile piuttosto che specificare perché questo non può essere fatto, sarei felice di accettarlo, lascerò questo qui sperando che gli altri lo vedano e non sprecano il loro tempo di ricerca del soggetto per tutto il tempo che ho fatto.

* Edit, se Google avrebbe in qualche modo aggiornare il sistema operativo per consentire applicazioni per verificare se si utilizza la fotocamera e se fosse, per liberarlo, allora questo sarebbe facilmente lavorare, ma ahimè, abbiamo avuto modo di aspettare per loro. O sviluppare su Iphone dove non è necessario contattare la fotocamera per accedere al flash.

1

Metti Sotto codice nel tuo onDestroy() metodo della vostra attività:

protected void onDestroy(){ 

if(camera!=null){ 
      camera.stopPreview(); 
      camera.setPreviewCallback(null); 

      camera.release(); 
      camera = null; 
     } 


} 

Se si utilizza classe Anteprima separata quindi aggiungere sotto il codice a che:

public void surfaceDestroyed(SurfaceHolder holder) { 

     if(camera!=null){ 
      camera.stopPreview(); 
      camera.setPreviewCallback(null); 

      camera.release(); 
      camera = null; 
     } 

    } 
+0

Un widget viene distrutto quando qualcuno avvia un'applicazione? – Bbit

+0

sì. distruggerà quando l'applicazione distruggerà. – Riser

+0

ok Proverò a tornare a ya: D – Bbit

Problemi correlati