Red de conocimiento informático - Conocimiento informático - Código fuente de interceptación de SMS de Android

Código fuente de interceptación de SMS de Android

Sí puedes.

Mientras el teléfono esté encendido y tenga señal, podrás recibir el mensaje de la otra parte. Cuando está configurado para rechazar llamadas o lista negra, si la otra parte envía un mensaje de texto, el teléfono aún puede recibir el mensaje de texto. Los mensajes de texto se guardan en la lista negra de su teléfono móvil o en registros de llamadas rechazadas. No solo hay registros de llamadas rechazadas, sino también registros de interceptación de mensajes de texto.

La interceptación de SMS es en realidad relativamente sencilla. Hay muchas introducciones relacionadas en Internet. Aquí presento principalmente algunos de los problemas encontrados durante el proceso de escritura.

En primer lugar, el principio de la interceptación de SMS es monitorear la reproducción de los mensajes SMS y luego determinar la cantidad de mensajes SMS y si han sido incluidos en la lista negra. Si es así, finalice la transmisión mediante abortBroadcast. Entre ellos, el problema más importante en el proceso no es recibir la interceptación, sino recibir la interceptación primero. Debido a que la transmisión de SMS es una transmisión ordenada, quien recibe la transmisión primero tiene derecho a finalizar la transmisión, por lo que en realidad. Necesitamos encontrar una manera de aumentar nuestro permiso para recibir transmisiones al más alto nivel. Aquí hay dos métodos principales, uno es establecer el valor de permiso máximo y el otro es configurar el método de registro en registro dinámico.

Establecer los permisos máximos es en realidad establecer la máxima prioridad al registrarse para la transmisión. La API del sistema Android declara que el permiso máximo es 1000, pero en realidad recibe un valor int. El sistema no tiene un valor de juicio en línea, por lo que podemos establecer el valor máximo de int, que tiene los permisos más altos.

Entonces, si ambos tienen permisos máximos, cuál tiene mayor prioridad, entonces es el segundo punto, el monitoreo dinámico del registro. Debido a que las transmisiones registradas dinámicamente en el código fuente se colocan en la lista de monitoreo antes que las transmisiones estáticas, aquí utilizamos el registro dinámico para configurar el monitoreo.

Si todo el mundo utiliza el registro dinámico, ¿quién lo recibirá primero? Este lugar parece estar relacionado con el nombre del paquete de la aplicación. No lo entiendo del todo. Probablemente signifique que cuanto antes sea la instalación, mayor será la prioridad y mayor será el orden de los alias de nombres de paquetes en el sistema (no el orden alfabético de los nombres de paquetes que escribimos).

Entonces echemos un vistazo a la implementación específica. Primero cree un servicio y luego asegúrese de que el servicio siempre se esté ejecutando en segundo plano (siempre puede existir como un proceso demonio, escuchando transmisiones de inicio, etc.), y luego registre la transmisión y cancele el registro en los métodos onStartCommand y onDestroy de el servicio respectivamente.