2010-12-06 4 views
2

J'utilise du code très standard pour envoyer des images depuis mon application. Un utilisateur m'a envoyé un e-mail pour me faire savoir que son application de messagerie par défaut n'apparaît pas dans le sélecteur et, curieusement, la même chose se produit sur mon téléphone. Je jouais avec le type MIME de l'intention. "text/plain" montre un ensemble d'options, y compris mon application Messages, et "*/*" montre une tonne. Serais-je paresseux pour définir le type MIME à "*/*" de sorte que je ne suis pas filtré par les applications qui devraient être une option pour l'utilisateur d'envoyer des images? Ou est-ce à peu près le chemin à parcourir?Types MIME et sélecteur d'intention ACTION_SEND

 Intent intent = new Intent(Intent.ACTION_SEND); 
     intent.setType("image/jpeg"); 
     Uri uri = Uri.fromFile(file); 
     intent.putExtra(Intent.EXTRA_STREAM, uri); 
     activity.startActivity(Intent.createChooser(intent, "Custom Heading...")); 

Un effet secondaire de ce que je n'aime pas que quelques applications (Facebook, Handcent) ont de multiples intentions enregistré pour envoyer différents types MIME, ils apparaissent dans la liste plus d'une fois lorsque la Le type MIME est "*/*".

Répondre

4

Construit dans la messagerie doit gérer votre type mime, il peut donc être une plate-forme question spécifique:

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

Check out the source for all the mime types that are handled.

Questions connexes