2010-06-02 12 views
24

Dieser Code funktioniert auf den einfachen Google-Geräten mit nativem Android-System. Aber es gibt keinen MMS-App in der Liste auf HTC Sense-Geräten und ich weiß nicht, über Motorola Blur etc .:Android: Gibt es eine universelle Möglichkeit, die MMS auf allen Android-Geräten zu senden?

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))); 

Dieser Code funktioniert auf dem htc Sinne, aber nicht von der Auswahl, was ich wirklich brauchen:

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

Aber ich weiß nicht, wie diese Codebeispiele miteinander zu kombinieren, und ich weiß nicht, wie HTC Sense UI programmatisch zu bestimmen. Ist es richtig, verschiedene Arten von Geräten zu unterstützen?

Vielen Dank für die Antworten.

+3

Kennen Sie schon [diese Frage] [1] ? Es hat einen Beispielcode. [1]: http://stackoverflow.com/questions/2972845/i-want-send-image-through-using-mms-in-android/2973016#2973016 – EboMike

+0

@EboMike Ich sehe, Sie sind der Typ, der EboBirthday erstellt hat Danke! Das ist ein tolles Programm, das seit dem ersten Mal benutzt wurde. – JPM

+0

@JPM Ich bin, danke JPM :) – EboMike

Antwort

1

Sie können erkennen, ob ein Responder für das HTC Intent gibt es, und dann Zweig:

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

Ich mache etwas ähnliches hier !!! http://stackoverflow.com/questions/14452808/sending-and-receiving-mms-in-android – toobsco42

1

Sie es wie folgt verwenden:

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);