Sto lavorando a un'applicazione multimediale. Sto catturando un'immagine attraverso la fotocamera e voglio inviare quell'immagine con un testo ad un altro numero. Ma non ricevo come inviare l'immagine tramite l'MMS.Come inviare un'immagine tramite MMS in Android?
risposta
Questo sembra essere risolta nel post: Sending MMS with Android
linee fondamentali dell'essere codice:
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");
qualcosa da tenere a mente è l'immagine dovrebbe essere su storage esterno o come fornire contenuto. i dati delle app di solito interni non sono accessibili da altre app. quindi devi temporaneamente scrivere l'immagine sull'archivio esterno e quindi passare il percorso a 'Uri.parse' – Shubhank
questo non funziona più poiché scegliere l'attività del messaggio nel telefono fa sì che il messaggio contenga solo l'immagine, senza il testo – peresisUser
MMS è solo una richiesta htttp-post. Si dovrebbe eseguire la richiesta utilizzando funzione rete in più:
final ConnectivityManager connMgr = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
final int result = connMgr.startUsingNetworkFeature(ConnectivityManager.TYPE_MOBILE, Phone.FEATURE_ENABLE_MMS);
Se si ottiene risultato con valore Phone.APN_REQUEST_STARTED, bisogna aspettare per stato corretto. Registrati BroadCastReciver e attendere che venga visualizzato Phone.APN_ALREADY_ACTIVE:
final IntentFilter filter = new IntentFilter();
filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
context.registerReceiver(reciver, filter);
Se sfondo connessione è pronta, a costruire i contenuti ed eseguire richiesta. Se si vuole fare che utilizzando il codice interno di Android, si prega di utilizzare questo:
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 da MMS-APN, MMSProxy: delega da MMS-APN, Porta: porta da MMS-APN
Nota che alcune classi provengono da pacchetti interni. È necessario scaricare da Android Git.
La richiesta dovrebbe essere fatto con l'URL da APN-spazio dell'utente ... codice ..:
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;
}
Qualcuno può spiegare come ottenere correttamente tutti i codici di riferimento in Eclipse (ad es. la classe SendReq, ecc.)? Ho git e repo e ho la sorgente Android e ho il progetto MMS stesso impostato in Eclipse (l'ho trovato nell'SDK su/packages/apps/MMS).Tuttavia, fa riferimento a molte altre parti del sistema Android e non so come ottenere tutti quei riferimenti nel mio progetto in Eclipse senza copiare i file nella directory src del mio progetto e nelle sottodirectory appropriate a mano, il che è schiacciante. –
Molte di queste classi sembrano provenire dalle API google non pubbliche (cfr: applicazione Mms). Non penso che possano essere usati fuori dalla scatola. – ddewaele
questo codice richiama l'app MMS incorporata? – Vijaya
Se dovete inviare MMS con qualsiasi immagine utilizzando Intent quindi utilizzare questo codice.
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
Se dovete inviare MMS con Audio o Video file usando Intent quindi utilizzare questo.
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);
fammi sapere se questo ti aiuta.
Invoca l'applicazione di messaggistica nativa. Ma c'è un modo per inviare MMS all'interno della propria applicazione e registrarsi ascoltando i messaggi in arrivo ** MMS ** con un 'BroadcastReceiver' in modo simile a come questo è implementato per ** messaggi SMS **. – toobsco42
Trovo che funzioni correttamente con le immagini, ma non con audio/video (il tuo secondo esempio di codice). – dadude999
La risposta con l'helper APN non funzionerà dopo Android 4.0. Per ottenere le impostazioni apn di mms su Android 4.0 e sopra, visualizza questa risposta: View mms apn
- 1. Come inviare MMS in J2ME?
- 2. Android SDK MMS
- 3. Attiva Android MMS per inviare messaggi in sospeso
- 4. Immagine di invio Android tramite mms programmaticamente (Operazione scaduta)
- 5. Come interrogare il registro MMS in Android
- 6. Inviare MMS a livello di codice
- 7. Android SDK: Riproduzione di video tramite MMS protocollo
- 8. Invia MMS dalla mia applicazione in Android
- 9. Android aggiungi MMS al database
- 10. Impossibile inviare SMS tramite SMSManager in Android
- 11. Come inviare valori esadecimali tramite Bluetooth in Android
- 12. Come inviare un messaggio di testo in Android tramite sip
- 13. inviare messaggi MIDI tramite USB su Android
- 14. Come inviare email tramite Vetro
- 15. Avvia l'app Android dal messaggio SMS/MMS?
- 16. Come inviare notifiche push Android tramite GCM su C# .Net
- 17. Conversione di streaming RTMP in streaming MMS
- 18. backup completo di sms/mms contenuto tramite adb
- 19. Come posso inviare dati asincroni tramite libwebsocket?
- 20. Come inviare un'immagine pygame tramite websocket?
- 21. Come inviare una stringa tramite PostMessage?
- 22. Come inviare EOF tramite terminale Windows
- 23. Come inviare SMS tramite l'applicazione Windows
- 24. Come inviare un messaggio immediato tramite SIP
- 25. Come inviare denaro a paypal tramite php
- 26. Come inviare array di byte tramite RestTemplate
- 27. Come inviare NSString tramite socket utilizzando NSOutputStream
- 28. inviare email tramite Gmail SMTP
- 29. Come posso inviare eventi chiave in Android?
- 30. come inviare parametri con file in Android
Sto facendo qualcosa di simile QUI !!! http://stackoverflow.com/questions/14452808/sending-and-receiving-mms-in-android – toobsco42