¿Cómo podemos codificar una aplicación de Android para capturar sin problemas los datos SMS de un dispositivo a otro?

Puede obtener mediante programación los datos sms de un dispositivo utilizando Content Resolver.
Un código simple como el siguiente le permite obtener contenido de la bandeja de entrada.

// Crear URI de cuadro de Bandeja de entrada
Uri inbox = Uri.parse (“contenido: // sms / inbox”);
// Lista de columnas requeridas
Cadena [] cols = nueva Cadena [] {“_id”, “dirección”, “cuerpo”};
// Obtener el objeto Content Resolver, que se ocupará del proveedor de contenido
ContentResolver cr = getContentResolver ();
// obtener mensajes de la bandeja de entrada del solucionador de contenido
Cursor c = cr.query (bandeja de entrada, cols, nulo, nulo, nulo);

El cursor c tendrá las filas con los datos requeridos. Del mismo modo, puede obtener datos del cuadro enviado, borradores, etc.

  • También puede obtener hilos de mensajes utilizando identificadores de hilo. En caso de que desee crear una aplicación más robusta, deberá verificar las versiones de Android en el dispositivo, ya que el código puede diferir para diferentes versiones.
  • Eche un vistazo a la fuente de la clase GrepCode de telefonía y puede utilizar las funciones similares implementadas con sus propias modificaciones. También eche un vistazo a esta aplicación de ejemplo de la aplicación SMS Popup del repositorio de Google para el sistema operativo móvil Android: Google Project Hosting.
  • Una vez que tenga los datos, puede retransmitirlos a otro dispositivo simplemente usando Google Cloud Messaging para Android manteniendo su carga útil por debajo de 4Kb de tamaño. Si los dispositivos están cerca el uno del otro, puede pensar en compartir los datos usando bluetooth también.