2012-04-22 11 views
11

Sto provando ad avviare il provider di sms del telefono iniziando un tentativo. Il codice che sto usando di seguito è quello che sto usando per iniziare l'intento.Android: apertura dell'attività SMS con più destinatari specificati

Intent sendIntent = new Intent(Intent.ACTION_VIEW); 
    StringBuilder uri = new StringBuilder("sms:"); 
    for (int i = 0; i < contacts.size(); i++) { 
     uri.append(contacts.get(i).getNumber()); 
     uri.append(", "); 
    } 
    sendIntent.putExtra("sms_body", ""); 
    sendIntent.setType("vnd.android-dir/mms-sms"); 
    sendIntent.setData(Uri.parse(uri.toString())); 
    startActivity(sendIntent); 

In particolare mi voglio utilizzare questo metodo piuttosto che l'invio del messaggio stesso in modo che l'utente può utilizzare il proprio client SMS preferito. Posso farlo funzionare con un solo numero ma non multiplo. Non riesco a trovare un esempio da nessuna parte con più destinatari. È possibile?

Grazie in anticipo

risposta

18
Intent smsIntent = new Intent(Intent.ACTION_SENDTO,Uri.parse("smsto:5551212;5551212")); 
smsIntent.putExtra("sms_body", "sms message goes here"); 
startActivity(smsIntent); 

Aggiungere un punto e virgola elenco delimitato dei numeri di telefono per "smsto:" come l'URI nel costruttore intenti. Riferisci anche a questo LINK

+0

Grazie che lavoravano avevano il delimitatore sbagliato – georgephillips

+0

non funziona per me aperto sms app che mostra un solo destinatario ?? –

6

Ho provato il tuo approccio con poche modifiche e funziona correttamente per me. Questo è il codice modificato.

StringBuilder uri = new StringBuilder("sms:"); 
    for (int i = 0; i < yourarray.length; i++) { 
     uri.append(yourarray[i]); 
     uri.append(", "); 
    } 
    Intent smsIntent = new Intent(Intent.ACTION_VIEW); 
    smsIntent.setType("vnd.android-dir/mms-sms"); 
    smsIntent.setData(Uri.parse(uri.toString())); 
    smsIntent.putExtra("sms_body", "Body of Message"); 
    startActivity(smsIntent);