J'ai une application dans Android dans laquelle je veux prendre une photo lorsque le bouton physique du matériel pour la caméra est pressé.J'ai enregistré une intention pour ce type d'action mais mon récepteur de diffusion ne se fait jamais appeler.récepteur de diffusion pour ACTION_CAMERA_BUTTON ne se fait jamais appeler
Voici comment je l'ai fait:
classequi étend BroadcastReceiver
public class Adisor extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT) != null) {
// prevent the camera app from opening
abortBroadcast();
System.out.println("HEY");
mCamera.takePicture(null, mPictureCallback, mPictureCallback);
}
}
}
est ici où j'enregistrer mon récepteur pour écouter les actions:
protected void onResume() {
Log.e(TAG, "onResume");
super.onResume();
drb = new Adisor();
IntentFilter i = new IntentFilter(
"android.intent.action.CAMERA_BUTTON"
);
registerReceiver(drb, i);
}
Et dans mon dossier manifeste J'ai ceci:
<activity android:name=".TakePhoto" />
<receiver android:name=".Adisor" >
<intent-filter android:priority="10000">
<action android:name="android.intent.action.CAMERA_BUTTON" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
Le nom de l'activité dans laquelle je fais tout cela est: TakePhoto
. Ma question est pourquoi ma méthode onReceive()
ne se fait jamais appeler!
Ni ceci:
System.out.println("HEY");
apparaît dans mon logcat ou la méthode
System.out.println("HEY");
mCamera.takePicture(null, mPictureCallbacmPictureCallback);
est appelé! Qu'est-ce que je fais mal?
Avez-vous vu si elle va dans le récepteur en dehors de la diffusion si() – Blundell
j'ai essayé avec un System.out. println() et il n'y a rien affiché ..... J'ai essayé à l'extérieur si() ... ce qui pourrait être faux? – Gabrielle
s'il vous plaît aidez-moi aussi http://stackoverflow.com/questions/24989221/how-to-get-camera-click-event-with-the-help-of-broadcast-receiver –