Blog personal de Anibal Copitan usuario Linux, creador de software y contenido sobre IA & Programación
¿Listo para aprender más? Contáctame por WhatsApp
martes, 22 de abril de 2025
Cómo enviar SMS largos en Android: problema y solución
Hace unas semanas tuve un problema con el envío de SMS en mi
aplicación Android llamada OkeyPay
, cuya funcionalidad
principal es enviar mensajes de texto a los números registrados. El
problema surgió cuando los mensajes largos no se enviaban correctamente,
especialmente aquellos que superaban los 160 caracteres o contenían
tildes o caracteres especiales.
En este artículo te cuento cuál fue la causa y cómo lo solucioné de forma sencilla.
Problema principal: Cuando los SMS pasaban de 160 caracteres o tenían tildes, simplemente no llegaban o se cortaban.
Problema:
Problema real: El siguiente mensaje de Yape no se enviaba completo:
Victor A. Coritan N. te envió un pago por S/ 222. El cód. de seguridad es: 541
Solución:
✅ Después de aplicar la solución, ahora sí se envía todo el mensaje, incluso cuando tiene tildes y pasa los límites normales de SMS.
En esta imagen puedes ver el codigo que funciona para mensajes cortos y mensajes largos.
Codigo:
linea 10
: El codigo es funcional para enviar mensajes cortos que tu controlas.
linea 19
: Esto codigo corta primero en partes correctas y con el siguiente metodo lo envia en todos los fragmentos como un solo mensaje grande.
Notas:
- Longitud máxima de un SMS clásico: 160 caracteres si es solo ASCII.
- Si usamos caracteres (acentos, emojis, etc), puede ser menos (como 70 caracteres)
Método | ¿Divide? | ¿Envía múltiples SMS? |
---|---|---|
sendTextMessage() | ❌ No | ❌ No |
sendMultipartTextMessage() + divideMessage() | ✅ Sí | ✅ Sí |
Conclusión:
✅ Siempre usa `sendMultipartTextMessage()`` si: - El mensaje puede superar 70 o 160 caracteres. - Puede tener tildes, emojis, o caracteres raros.
Si tu has tenido problemas con envio de SMS puedes escribir en los
comentarios.
Contenido en video:
Soy Aníbal 🐧💻. ¿Tienes una gran Idea/Proyecto?
¿Tienes un proyecto en mente o necesitas resolver un desafío técnico? Estoy aquí para ayudarte a encontrar la mejor solución. 🚀
Hablemos sobre tu proyecto
No hay comentarios:
Publicar un comentario