web-dev-qa-db-fra.com

Comment envoyer le SMS plus de 160 caractères?

Comment envoyer de gros SMS sous 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 aussi 

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-il m'aider?

37
Girish Bhutiya

Caractères indésirables? méthode sendMultipartTextMessage envoie uniquement le message text. Si vous souhaitez envoyer un message non-texte, vous devriez regarder la méthode sendDataMessage. Ci-dessous, l'extrait de code sous Android cts . Il a par exemple comment envoyer de longs messages.

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)
32
Jasonw

Essayez ci-dessous le code pourrait aider

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

L'émulateur envoie les caractères indésirables de ce code lors de certains problèmes, utilisez apk dans real mobile et vérifiez le code. Je suis sûr que votre application n'enverra pas de message indésirable ... Tout le meilleur.

3
tizbn

Vous devez obtenir un code court spécifique auprès de SMSC, pour envoyer SMS comportant plus de 160 caractères.

0
krishna Ram