android - studio - ¿Cómo enviar el SMS con más de 160 caracteres?
no puedo enviar mensajes de texto largos (4)
Cómo enviar grandes SMS en Android. Solía :
SmsManager sms = SmsManager.getDefault();
sms.sendTextMessage(contactNos[j], null,msgs[i], sentPI, deliveredPI);
este código funciona solo para mensajes de 160 caracteres. también uso
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);
Pero envía un carácter basura en el mensaje. ¿Alguien puede ayudarme?
¿Personajes basura? método sendMultipartTextMessage solo envía mensajes de texto . Si desea enviar mensajes que no sean de texto, debe consultar el método sendDataMessage. A continuación se muestra el extracto del código de cts Android. Tiene un ejemplo sobre cómo enviar mensajes largos.
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)
Debería obtener un código corto específico de SMSC, para enviar SMS que tenga más de 160 caracteres.
El emulador envía los caracteres basura en ese código durante cierto problema así que use apk en el móvil real, y verifique el código, estoy seguro de que su aplicación no enviará mensajes basura. Todo lo mejor.
Intente a continuación el código podría ayudar
SmsManager sms = SmsManager.getDefault();
ArrayList<String> parts = sms.divideMessage(message);
sms.sendMultipartTextMessage(phoneNumber, null, parts, null, null);