Filtre d'intention: l'intention.getData() renvoie la valeur null

Je suis en train d'écrire un éditeur d'image dans Android. Jusqu'à présent, il a une seule activité. À partir de cette activité, je peux charger une image à l'aide d'une option de menu qui appelle à la Galerie de l'activité, et dans onActivityResult je traite l'image reçue à la peinture de ma toile afin que je puisse le modifier. Cela fonctionne bien.

Ce que je voudrais faire maintenant est de faire de cette activité appelée à partir de n'importe où d'autre, donc au lieu d'avoir à choisir une image de l'intérieur de l'activité, je pourrais vous suffit d'ouvrir la Galerie, de choisir une photo et de l'envoyer à mon application. Mais je ne peux pas comprendre comment.

Sur mon manifeste, j'ai mis celui-ci dans le <activity> tags:

<intent-filter>
   <action android:name="android.intent.action.SEND" />
   <category android:name="android.intent.category.DEFAULT" />
   <data android:mimeType="image/*" />
</intent-filter>

Alors, dans mon activité, comme mentionné dans http://developer.android.com/training/basics/intents/filters.html , j'ai mis celui-ci dans onCreate():

...
//after initializing my view and stuff

Intent intent =getIntent();
Uri image = intent.getData();

//code to do something with my uri
...

Quand j'ai installer l'application sur mon téléphone, puis l'ouverture de la Galerie, je peux prendre une image et utiliser la fonction "envoyer" dans le menu et mon application s'affichera dans la liste des applications, mais lorsque je sélectionne mon application s'ouvre mais ne tient pas compte de l'image. Il s'avère que l'uri je suis de intent.getData() est nul, et je ne peux pas comprendre pourquoi.

Je fais quelque chose de mal? Suis-je oublier quelque chose? Si vous devez le savoir, je suis sur stock Android 2.3 à l'aide de la CoolIris galerie de celle-ci.

OriginalL'auteur ziritrion | 2012-04-30