39 votes

Comment envoyer un SMS de plus de 160 caractères ?

Comment envoyer de gros SMS dans Android. J'ai utilisé :

SmsManager sms = SmsManager.getDefault();
sms.sendTextMessage(contactNos[j], null,msgs[i], sentPI, deliveredPI);

ce code ne fonctionne que pour un message de 160 caractères. j'utilise également

ArrayList<String> msgsplit=sms.divideMessage(msgs[i]);
ArrayList<PendingIntent> listOfIntents = new ArrayList<PendingIntent>(); 

for (int k=0; k < msgsplit.size(); k++){  
    Intent sentIntent = new Intent(); 
    PendingIntent pi = PendingIntent.getBroadcast(MultipleMsg.this, 0, sentIntent, PendingIntent.FLAG_CANCEL_CURRENT);  
    listOfIntents.add(pi);  
}
// sendMessage(contactNos[j],msgs[i]);
sms.sendMultipartTextMessage(contactNos[j],null,msgsplit, listOfIntents, null);

Mais il envoie un caractère indésirable dans le message. Quelqu'un peut m'aider ?

51voto

ingsaurabh Points 10892

Essayer le code ci-dessous pourrait aider

SmsManager sms = SmsManager.getDefault();
ArrayList<String> parts = sms.divideMessage(message);
sms.sendMultipartTextMessage(phoneNumber, null, parts, null, null);

35voto

Jasonw Points 3633

Caractères indésirables ? méthode sendMultipartTextMessage n'envoie que des messages texte. Si vous souhaitez envoyer un message non textuel, vous devez rechercher la méthode sendDataMessage. Ci-dessous est l'extrait de code de cts android. Il a un exemple sur la façon d'envoyer des messages longs.

SmsManager sm = SmsManager.getDefault();
ArrayList<String> parts =sm.divideMessage(LONG_TEXT);
int numParts = parts.size();

ArrayList<PendingIntent> sentIntents = new ArrayList<PendingIntent>();
ArrayList<PendingIntent> deliveryIntents = new ArrayList<PendingIntent>();

for (int i = 0; i < numParts; i++) {
sentIntents.add(PendingIntent.getBroadcast(getContext(), 0, mSendIntent, 0));
deliveryIntents.add(PendingIntent.getBroadcast(getContext(), 0, mDeliveryIntent, 0));
}

sm.sendMultiPartTextMessage(mDestAddr,null, parts, sentIntents, deliveryIntents)

3voto

tizbn Points 113

L'émulateur envoie les caractères indésirables dans ce code pendant un certain problème, donc utilisez apk dans le vrai mobile , et vérifiez le code , je suis sûr que votre application n'enverra pas de message indésirable..Tout le meilleur.

0voto

user3706490 Points 21

Vous devriez obtenir un code court spécifique de SMSC, pour envoyer des SMS qui ont des caractères de plus de 160.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X