Android: BroadcastReceiver intention de détecter la caméra Photo prise?
Question
Je travaille sur une application Android qui doit effectuer une action chaque fois qu'une nouvelle image est prise avec le téléphone. Je ne veux pas prendre l'image dans ma demande, mais plutôt effectuer une action lorsque l'application de la caméra prend une image et il enregistre sur la carte SD. En ce moment, je suis devenu un BroadcastReceiver qui est actuellement mis en œuvre l'écoute de « android.intent.action.CAMERA_BUTTON ». Toutefois, cela ne semble pas s'appeler quand je suis en train de vouloir. J'ai essayé de déboguer l'application sur mon propre téléphone avec un saut de ligne sur la première ligne de la méthode OnReceive du BroadcastReceiver, mais il n'a jamais atteint ce code.
Quelqu'un sait-il ce que l'intention correcte pour laquelle je devrais être à l'écoute est? Ou utilise un BroadcastReceiver même pas la meilleure façon de le faire? (Par exemple, est-il une meilleure façon d'y parvenir comme écouter quand une nouvelle image est enregistrée sur la carte)?
Merci!
Mise à jour: J'ai un trackball sur mon téléphone (HTC Eris), donc il est possible que de prendre des photos de cette façon ne soit pas envoyé comme « bouton de l'appareil photo »? Si oui, est-il une solution pour un téléphone sans un « bouton de l'appareil photo », mais plutôt quelque chose comme un trackball?
La solution
En ce moment, je l'ai obtenu un BroadcastReceiver qui est actuellement mis en œuvre l'écoute de « android.intent.action.CAMERA_BUTTON ». Toutefois, cela ne semble pas s'appeler quand je suis en train de vouloir.
Cela ne se fait diffuser si l'activité de premier plan ne consomme pas l'événement.
Autres conseils
Tout à fait une vieille question, si quelqu'un a encore besoin de l'essai de solution en utilisant
android.hardware.action.NEW_PICTURE
comme filtre l'intention
<!-- 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>
Il renvoie l'Uri de l'image dans intent.getData () de sa fonction OnReceive ()
it helps
essayez celui-ci cela fonctionne pour moi
<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>