android android-intent mms htcsense

Android: ¿Existe una forma universal de enviar el MMS en cualquier dispositivo Android?



android-intent htcsense (3)

Este código funciona en los dispositivos simples de Google con el sistema nativo de Android. Pero no hay una aplicación MMS en la lista de dispositivos de detección htc y no sé sobre Motorola Blur, etc .:

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 htc pero no en el Selector, lo que realmente necesito:

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 estos ejemplos de código y no sé cómo determinar Htc Sense ui mediante programación. ¿Es la forma correcta de admitir diferentes tipos de dispositivos?

Gracias por las respuestas


Puede detectar si hay un respondedor para HTC Intent y luego bifurcar:

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


Puedes usarlo así:

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