2010-06-02 27 views
24

Ce code fonctionne sur les appareils google simples avec système Android natif. Mais il n'y a pas l'application MMS dans la liste de périphériques sens htc et je ne sais pas Motorola Blur etc .:Android: Existe-t-il un moyen universel d'envoyer le MMS sur n'importe quel appareil Android?

final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND); 
    emailIntent.setType("image/png"); 
    emailIntent.putExtra(Intent.EXTRA_STREAM, uri); 
    context.startActivity(Intent.createChooser(emailIntent, context.getString(R.string.send_intent_name))); 

Ce code fonctionne sur le sens htc mais pas du Chooser, ce que je vraiment besoin:

Intent sendIntent = new Intent("android.intent.action.SEND_MSG"); 
    sendIntent.putExtra(Intent.EXTRA_STREAM, uri); 
    sendIntent.setType("image/png"); 
    context.startActivity(sendIntent); 

Mais je ne sais pas comment combiner ces exemples de code ensemble et je ne sais pas comment déterminer Htc Sense ui programme. Est-ce la bonne façon de soutenir différents types d'appareils?

Merci pour les réponses.

+3

Avez-vous vu [cette question] [1] ? Il a un exemple de code. [1]: http://stackoverflow.com/questions/2972845/i-want-send-image-through-using-mms-in-android/2973016#2973016 – EboMike

+0

@EboMike Je vois que vous êtes le gars qui a créé EboBirthday Merci! C'est un programme génial, utilisé depuis sa sortie. – JPM

+0

@JPM Je suis, merci JPM :) – EboMike

Répondre

1

Vous pouvez détecter s'il y a un répondeur pour le HTC intention, puis la branche:

intent = new Intent("android.intent.action.SEND_MSG"); 
intent.putExtra(Intent.EXTRA_STREAM, uri); 
intent.setType("image/png"); 

resolves = getActivity().getPackageManager().queryIntentActivities(intent, 
     PackageManager.MATCH_DEFAULT_ONLY); 

if (resolves.size() > 0) { 
    // This branch is followed only for HTC 
    context.startActivity(intent); 
} else { 
    // Else launch the non-HTC sense Intent 
    intent = new Intent(android.content.Intent.ACTION_SEND); 
    intent.setType("image/png"); 
    intent.putExtra(Intent.EXTRA_STREAM, uri); 
    context.startActivity(Intent.createChooser(intent, 
      context.getString(R.string.send_intent_name)));  
} 
+0

Je fais quelque chose de similaire ICI !!! http://stackoverflow.com/questions/14452808/sending-and-receiving-mms-in-android – toobsco42

1

Vous pouvez l'utiliser comme ceci:

Intent i = new Intent(Intent.ACTION_SEND); 
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
i.putExtra(Intent.EXTRA_EMAIL, new String[]{""}); 
i.setType("video/3gp"); 
i.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://" + attachmentFilePath)); 
startActivity(i);