servicio que puedo porque por mensajes mensaje mandar los fotos evitar esta error envio enviar descargar cómo conviertan como claro automáticamente archivo admitido adjunto activar activado android messaging mms

que - ¿Cómo enviar imágenes a través de MMS en Android?



no puedo enviar mensajes multimedia claro (4)

Esto parece ser respondido en la publicación: Envío de MMS con Android

Las principales líneas de código son:

Intent sendIntent = new Intent(Intent.ACTION_SEND); sendIntent.putExtra("sms_body", "some text"); sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse(url)); sendIntent.setType("image/png");

Estoy trabajando en una aplicación multimedia. Estoy capturando una imagen a través de la cámara y quiero enviar esa imagen con un texto a otro número. Pero no entiendo cómo enviar la imagen a través del MMS.


La respuesta con el ayudante de APN no funcionará después de Android 4.0. Para obtener la configuración de mms apn en Android 4.0 y superior ver esta respuesta: Ver mms apn


MMS es solo una solicitud de htttp-post. Debe realizar la solicitud utilizando la función de red adicional :

final ConnectivityManager connMgr = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE); final int result = connMgr.startUsingNetworkFeature( ConnectivityManager.TYPE_MOBILE, Phone.FEATURE_ENABLE_MMS);

Si obtiene un resultado con el valor Phone.APN_REQUEST_STARTED, debe esperar al estado correcto. Registre BroadCastReciver y espere hasta que Phone.APN_ALREADY_ACTIVE aparezca:

final IntentFilter filter = new IntentFilter(); filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION); context.registerReceiver(reciver, filter);

Si el fondo de la conexión está listo, crea contenido y realiza la solicitud. Si quieres hacer eso usando el código interno de Android, usa esto:

final SendReq sendRequest = new SendReq(); final EncodedStringValue[] sub = EncodedStringValue.extract(subject); if (sub != null && sub.length > 0) { sendRequest.setSubject(sub[0]); } final EncodedStringValue[] phoneNumbers = EncodedStringValue .extract(recipient); if (phoneNumbers != null && phoneNumbers.length > 0) { sendRequest.addTo(phoneNumbers[0]); } final PduBody pduBody = new PduBody(); if (parts != null) { for (MMSPart part : parts) { final PduPart partPdu = new PduPart(); partPdu.setName(part.Name.getBytes()); partPdu.setContentType(part.MimeType.getBytes()); partPdu.setData(part.Data); pduBody.addPart(partPdu); } } sendRequest.setBody(pduBody); final PduComposer composer = new PduComposer(this.context, sendRequest); final byte[] bytesToSend = composer.make(); HttpUtils.httpConnection(context, 4444L, MMSCenterUrl, bytesToSendFromPDU, HttpUtils.HTTP_POST_METHOD, !TextUtils .isEmpty(MMSProxy), MMSProxy, port);

MMSCenterUrl: url de MMS-APN, MMSProxy: proxy de MMS-APN, puerto: puerto de MMS-APN

Tenga en cuenta que algunas clases son de paquetes internos. Descargar desde Android GIT es obligatorio.

La solicitud debe hacerse con la URL del código de apn del usuario ... código ..:

public class APNHelper { public class APN { public String MMSCenterUrl = ""; public String MMSPort = ""; public String MMSProxy = ""; } public APNHelper(final Context context) { this.context = context; } public List<APN> getMMSApns() { final Cursor apnCursor = this.context.getContentResolver().query(Uri.withAppendedPath(Telephony.Carriers.CONTENT_URI, "current"), null, null, null, null); if ( apnCursor == null ) { return Collections.EMPTY_LIST; } else { final List<APN> results = new ArrayList<APN>(); if ( apnCursor.moveToFirst() ) { do { final String type = apnCursor.getString(apnCursor.getColumnIndex(Telephony.Carriers.TYPE)); if ( !TextUtils.isEmpty(type) && ( type.equalsIgnoreCase(Phone.APN_TYPE_ALL) || type.equalsIgnoreCase(Phone.APN_TYPE_MMS) ) ) { final String mmsc = apnCursor.getString(apnCursor.getColumnIndex(Telephony.Carriers.MMSC)); final String mmsProxy = apnCursor.getString(apnCursor.getColumnIndex(Telephony.Carriers.MMSPROXY)); final String port = apnCursor.getString(apnCursor.getColumnIndex(Telephony.Carriers.MMSPORT)); final APN apn = new APN(); apn.MMSCenterUrl = mmsc; apn.MMSProxy = mmsProxy; apn.MMSPort = port; results.add(apn); } } while ( apnCursor.moveToNext() ); } apnCursor.close(); return results; } } private Context context; }


Si tiene que enviar MMS con cualquier imagen con intención, utilice este código.

Intent sendIntent = new Intent(Intent.ACTION_SEND); sendIntent.setClassName("com.android.mms", "com.android.mms.ui.ComposeMessageActivity"); sendIntent.putExtra("sms_body", "some text"); sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:///sdcard/image_4.png")); sendIntent.setType("image/png"); startActivity(sendIntent);;

O

Si tiene que enviar MMS con un archivo de audio o video usando Intent, entonces use esto.

Intent sendIntent = new Intent(Intent.ACTION_SEND); sendIntent.setClassName("com.android.mms", "com.android.mms.ui.ComposeMessageActivity"); sendIntent.putExtra("address", "1213123123"); sendIntent.putExtra("sms_body", "if you are sending text"); final File file1 = new File(mFileName); if(file1.exists()){ System.out.println("file is exist"); } Uri uri = Uri.fromFile(file1); sendIntent.putExtra(Intent.EXTRA_STREAM, uri); sendIntent.setType("video/*"); startActivity(sendIntent);

avísame si esto te ayuda.