Android: BroadcastReceiver intento di rilevare macchina fotografica Photo taken?
Domanda
Sto lavorando su un'applicazione Android che deve eseguire un'azione ogni volta che una nuova immagine è presa con il telefono. Non voglio prendere l'immagine all'interno della mia applicazione, ma piuttosto eseguire alcune azioni quando l'applicazione fotocamera scatta una foto e la salva sulla scheda SD. In questo momento, ho ottenuto un BroadcastReceiver implementato che è attualmente in ascolto per "android.intent.action.CAMERA_BUTTON". Tuttavia, questo non sembra ottenere chiamato quando sto volerlo a. Ho cercato di eseguire il debug dell'applicazione sul mio telefono cellulare con un'interruzione di linea sulla prima riga del metodo di OnReceive del BroadcastReceiver, ma non raggiunge mai quel codice.
Qualcuno sa che l'intento corretto per il quale io dovrebbe essere l'ascolto è? O sta utilizzando un BroadcastReceiver nemmeno il modo migliore per farlo? (Per esempio, c'è un modo migliore per ottenere questo risultato, come l'ascolto per quando una nuova immagine viene salvata sulla carta)?
Grazie!
Aggiornamento: ho un trackball sul mio telefono (HTC Eris), quindi è possibile che scattare foto in questo modo non vengono inviati come "macchina fotografica del tasto"? Se è così, c'è una soluzione per un telefono senza un "pulsante della fotocamera", ma piuttosto qualcosa di simile a una sfera rotante?
Soluzione
In questo momento, ho ottenuto un BroadcastReceiver implementato che è attualmente in ascolto per "android.intent.action.CAMERA_BUTTON". Tuttavia, questo non sembra ottenere chiamato quando sto volerlo a.
Che solo viene trasmesso se l'attività in primo piano non consuma l'evento.
Altri suggerimenti
Piuttosto una vecchia questione, se qualcuno ha bisogno ancora la soluzione provare a utilizzare
android.hardware.action.NEW_PICTURE
come filtro intento
<!-- Receiver for camera clicks -->
<receiver
android:name=".receivers.CameraEventReceiver"
android:label="CameraEventReceiver">
<intent-filter>
<!-- <action android:name="com.android.camera.NEW_PICTURE" /> -->
<action android:name="android.hardware.action.NEW_PICTURE" />
<data android:mimeType="image/*" />
</intent-filter>
</receiver>
Si restituirà l'Uri dell'immagine in intent.getData () della sua OnReceive () la funzione
La speranza aiuta ??p>
provare questo uno Questo funziona per me
<receiver android:name=".pictureReceiver" >
<intent-filter android:priority="10000" >
<action android:name="android.intent.action.CAMERA_BUTTON" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>