2010-06-02 7 views
24

Este código funciona en los dispositivos simples de Google con el sistema nativo de Android. Pero no hay ninguna aplicación MMS en la lista de dispositivos de HTC Sense y no sé acerca de la falta de definición de Motorola, etc .:Android: ¿Existe una forma universal de enviar el MMS en cualquier dispositivo 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))); 

Este código funciona en el sentido de HTC, pero no desde el Selector, lo que realmente necesita:

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

Pero no sé cómo combinar este código muestras juntas y no sabe cómo determinar HTC Sense UI mediante programación. ¿Es la forma correcta de admitir diferentes tipos de dispositivos?

Gracias por las respuestas.

+3

Ha visto [esta cuestión] [1] ? Tiene un código de muestra. [1]: http://stackoverflow.com/questions/2972845/i-want-send-image-through-using-mms-in-android/2973016#2973016 – EboMike

+0

@EboMike veo que eres el tipo que creó EboBirthday ¡Gracias! ese es un programa asombroso, lo he usado desde que salió por primera vez. – JPM

+0

@JPM Yo soy, gracias JPM :) – EboMike

Respuesta

1

Se puede detectar si hay una respuesta para la Intención de HTC, y luego rama:

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

¡Estoy haciendo algo similar AQUÍ! http://stackoverflow.com/questions/14452808/sending-and-receiving-mms-in-android – toobsco42

1

Usted puede utilizar de esta manera:

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