2013-05-13 12 views
6

Chcę wysłać MMS programowo Użyłem następujący kod bowysłać MMS programowo

Intent sendIntent1 = new Intent(Intent.ACTION_SEND); 
    try { 

     sendIntent1.setType("text/x-vcard"); 
     sendIntent1.putExtra("address","0475223091"); 
     sendIntent1.putExtra("sms_body","hello.."); 
     sendIntent1.putExtra(Intent.EXTRA_STREAM, 
       Uri.parse(vcfFile.toURL().toString())); 
    } catch (MalformedURLException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    startActivity(sendIntent1); 

Problemem jest to skierowanie do strony redagowania wiadomości i wymaga ręcznego wysyłania wiadomości SMS i nie chcę więc bez powiadomienie powinno wysłać Jak mogę to zrobić?

ktoś proszę podzielić mi odpowiedź

Odpowiedz

9

W końcu znalazłem rozwiązanie, które działa w 100%. Proszę odnieść się do github projektu https://github.com/klinker41/android-smsmms. (Każdy, kto uzna to za przydatne, przekaż darowiznę autorowi http://forum.xda-developers.com/showthread.php?t=2222703).

odnotować, że ustawienia są obowiązkowe tylko

Settings sendSettings = new Settings(); 

sendSettings.setMmsc(mmsc); 
sendSettings.setProxy(proxy); 
sendSettings.setPort(port); 

Można je dostać coś podobnego (znaleziono w Set APN programmatically on Android - answear przez vincent091):

Cursor cursor = null; 
if (Utils.hasICS()){ 
    cursor =SqliteWrapper.query(activity, activity.getContentResolver(), 
      Uri.withAppendedPath(Carriers.CONTENT_URI, "current"), APN_PROJECTION, null, null, null); 
} else { 
    cursor = activity.getContentResolver().query(Uri.withAppendedPath(Telephony.Carriers.CONTENT_URI, "current"), 
     null, null, null, null); 
} 

cursor.moveToLast(); 
String type = cursor.getString(cursor.getColumnIndex(Telephony.Carriers.TYPE)); 
String mmsc = cursor.getString(cursor.getColumnIndex(Telephony.Carriers.MMSC)); 
String proxy = cursor.getString(cursor.getColumnIndex(Telephony.Carriers.MMSPROXY)); 
String port = cursor.getString(cursor.getColumnIndex(Telephony.Carriers.MMSPORT)); 
+0

ja dostać ten java.lang.IllegalArgumentException: Identyfikator URI komunikatu pustego. Czy możesz pomóc? – user3530687

-1

W ten sposób można MMS bezpośrednio przez podanie mobile No i Subject.And dołączyć obraz.

Uri uri = Uri.parse("file://"+Environment.getExternalStorageDirectory()+"/test.png"); 
     Intent i = new Intent(Intent.ACTION_SEND); 
     i.putExtra("address","1234567890"); 
     i.putExtra("sms_body","This is the text mms"); 
     i.putExtra(Intent.EXTRA_STREAM,"file:/"+uri); 
     i.setType("image/png"); 
     startActivity(i); 
2

MMS jest żądaniem opartym na HTTP w systemie Android. Musisz mieć komórkową transmisję danych, aby wysłać wiadomość MMS. Nie ma interfejsów API udostępnianych przez system Android do wysyłania wiadomości MMS, ponieważ mają one interfejsy API dla wiadomości SMS. Jeśli chcesz, aby aplikacja wysyłała wiadomości MMS, musisz napisać wszystko. Proszę odnieść się do kodu AOSP. https://github.com/android/platform_packages_apps_mms LUB możesz po prostu zbudować intencję, a następnie uruchomić natywną aplikację do wysyłania wiadomości.

Powiązane problemy