2013-05-13 2 views
6

Je veux envoyer un MMS programme je le code suivant pour ceEnvoyer MMS programme

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

Le problème est qu'il dirige à la page de composition de message et EXIGE envoyer manuellement le SMS et je ne veux donc sans notification, il devrait envoyer Comment puis-je le faire ??

SomeBody s'il vous plaît me partager la réponse

Répondre

9

J'ai finalement trouvé une solution qui fonctionne à 100%. Veuillez vous référer au projet github https://github.com/klinker41/android-smsmms. (Toute personne qui trouve cela utile, s'il vous plaît faire un don à l'auteur http://forum.xda-developers.com/showthread.php?t=2222703).

avis, que les paramètres obligatoires ne sont

Settings sendSettings = new Settings(); 

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

vous pouvez les obtenir quelque chose comme (qui se trouve à Set APN programmatically on Android - answear par 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

je reçois ce java.lang.IllegalArgumentException: URI de message nul. Pouvez-vous m'aider? – user3530687

-1

De cette manière, vous pouvez directement mms, En donnant le numéro mobile et Subject.And joindre l'image.

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 est une requête HTTP basée dans Android. Vous devez disposer de données mobiles pour envoyer un MMS. Aucune API n'est exposée par Android pour envoyer un MMS, car il possède des API pour SMS. Si vous voulez que votre application envoie des MMS, vous devrez tout écrire. Veuillez vous référer au code AOSP. OU vous pouvez simplement créer l'intention, puis lancer l'application de messagerie native.

Questions connexes