Cómo obtener el número de teléfono del destinatario de SMS en Android

He visto muchas preguntas preguntando cómo obtener el número de teléfono del remitente SMS, pero no el número de teléfono del destinatario. He utilizado la herramienta en este sitio para generar una PDU y puedo ver el número de teléfono del destinatario en ella:

Detalles útiles de la PDU y herramienta de traducción PDU

Sin embargo, no veo en ninguna parte de la clase SmsMessage proporcionada por Android donde puedo obtener el número de teléfono del destinatario. La razón por la que quiero hacer esto es que tengo un teléfono Dual SIM, pero no veo en ninguna parte de Android donde puedo determinar qué puerto SIM se está utilizando para los SMS entrantes. Por lo menos, quiero mirar cada mensaje de SMS y determinar a qué número de teléfono fueron enviados.

Esta pregunta parece muy similar a la mía, pero sin respuestas:

Cómo obtener el número de teléfono del destinatario de SMS en Android

Mi pregunta es diferente porque he detallado un enlace a un sitio sobre PDUs, que puede ser útil para extraer el número de teléfono de los bytes de PDU sin procesar que ofrece la clase SmsMessage.

¿Algunas ideas?

Depende de qué punto mire el mensaje SMS. La PDU de SMS se encuentra en la parte superior del protocolo MAP.

Cuando usted envía el mensaje de SMS, el teléfono pone el número del destinatario en TP-Destino dentro de una PDU, cuando usted recibe el mensaje del SMS, no hay número del destinatario dondequiera. La razón de esto es cómo funciona SMS. Cuando alguien te envía SMS, la red GSM a su lado solicita un mensaje de SRIsm para ti, eso significa que su HLR tratará de encontrarte en su red doméstica, oa través de tu casa HLR. La respuesta de HLR es el número de IMSI (su SIMcard) y el número de VLR / MSC, a donde la red del remitente debe enviar SMS. En el segundo paquete, que es en realidad mensaje SMS (Forward-MT), por lo tanto, es sólo su número IMSI. Ya que tiene doble SIM, puede tratar de encontrar basado en este número, a la que la tarjeta SIM es SMS destinado. Tenga en cuenta que IMSI número no es parte de la PDU, sino más bien el protocolo MAP.

  • Cómo enviar y recibir mensajes SMS de datos
  • SMS Broadcast Receiver no funciona después de reiniciar
  • Android y Google Voice: escuchando mensajes SMS entrantes
  • Enviar SMS hasta que tenga éxito
  • ¿Cómo enviar y recibir SMS desde la aplicación Android?
  • Envío de SMS mediante programación a varias personas obteniendo un error genérico
  • Android: ¿Cómo enviar unicode sms programatically y recibirlo en el otro lado correctamente?
  • Eliminar sms android después de recibir Sin demora
  • Enviar un mensaje SMS (UTF-16) con un carácter desconocido reemplazado por un "carácter de reemplazo" en Android
  • Enviar y recibir SMS dentro de mi propia aplicación, no en la aplicación nativa de mensajes en android usando la API nativa de SMS
  • SMS Broadcast Receiver no se llama en Android 6
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.