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
Vous devez vous connecter pour publier un commentaire.
L'Uri que vous voulez, c'est dans le bundle. J'ai essayé le code ci-dessous et que vous pouvez obtenir l'Uri de l'image
comme
content://media/external/images/media/1750
Plus d'informations, vous pouvez voir l' ACTION_SEND
Voir la ACTION_SEND doc, il expliquer la
input
que vous devez vous concentrer.OriginalL'auteur dreamtale