Colección de citas famosas - Mensajes de felicitación - ¿Por qué el código de verificación que recibí en mi teléfono Xiaomi no se completa automáticamente?

¿Por qué el código de verificación que recibí en mi teléfono Xiaomi no se completa automáticamente?

Vaya a la administración de permisos en el centro de seguridad y habilite todo el software para acceder al contenido de los mensajes de texto.

Autocompletar es una función de algunos software, no una función de teléfono móvil. Por ejemplo, Alipay puede completar automáticamente el código de verificación en el mensaje de texto en algunos lugares donde se ingresa el código de verificación. La premisa es que su teléfono móvil ha abierto el permiso para que Alipay lea mensajes de texto; de lo contrario, Alipay no puede obtener el contenido de. tus mensajes de texto.

En el proceso de desarrollo de la aplicación, debemos enviar un código de verificación al usuario para verificar su identidad. Sin embargo, después de recibir el código de verificación por SMS, el usuario debe abandonar la aplicación actual para ver la aplicación. código de verificación y luego regresar a nuestra aplicación para completar el código de verificación causará muchos inconvenientes al usuario. La aplicación en el sistema Android puede leer mensajes cortos en el teléfono móvil. Podemos usar esta función para obtener el contenido que queremos y mostrarlo en nuestro cuadro de entrada.

La función que implementamos esta vez requiere ContentObserver. Cuando enviamos un mensaje de texto al teléfono móvil, el teléfono móvil llamará automáticamente al método especificado en la clase ContentObserver para notificar a nuestra aplicación sobre los cambios en el contenido del mensaje de texto. ¿Extraemos la información del contenido y la completamos en nuestro cuadro de entrada?

Aquí te cuento un patrón de diseño relacionado: Patrón Observer:

El patrón Observer es un patrón de diseño de software. En este modo, el objeto de destino gestiona todos los objetos observadores que dependen de él y emite notificaciones activamente cuando cambia su propio estado. Esto generalmente se logra llamando a métodos proporcionados por el observador. Este patrón se utiliza a menudo para implementar sistemas de procesamiento del tiempo.

El patrón del observador separa perfectamente al observador del objeto observado, traza límites claros entre los módulos y mejora la mantenibilidad y reutilización de la aplicación.

El patrón de diseño del observador define una relación de dependencia de uno a muchos entre objetos, de modo que cuando el estado de un objeto cambia, todos los objetos que dependen de él serán notificados y actualizados automáticamente.

Aplicando a nuestro ejemplo, primero registramos a un observador en la aplicación de SMS de nuestro sistema durante la operación inicial de la aplicación y le decimos a nuestra aplicación de SMS que soy su observador cuando me notificará cuando cambie su propio estado.

Echemos un vistazo al proceso básico de un observador:

El observador se registra en el sujeto observado y el sujeto observado almacena al observador en el contenedor.

Cuando el objeto observado cambia, obtenga todos los observadores registrados del contenedor y notifique a los observadores del cambio.

El observador le dice al observador que cancele la observación y el observador lo saca del contenedor.

El propósito del observador de contenido es observar (capturar) los cambios en la base de datos causados ​​por un Uri específico y luego realizar el procesamiento correspondiente. Es similar a un disparador en la tecnología de bases de datos y se activa cuando cambia el Uri observado por Content Server.

Para observar un Uri específico, siga estos pasos:

1 Para crear nuestra clase derivada de ContentOberver específica, debemos sobrecargar el constructor de la clase principal y el método onChange(). manejar la implementación de la función después de la devolución de llamada.

2. Utilice context.getContetResolover() para obtener el objeto ContentResolover y luego llame al método RegisterContentObeserver() para registrar el observador de contenido.

3. Debido a que el ciclo de vida de ContentObserver no está sincronizado con las actividades y servicios, debe llamar manualmente a unregisterContentObserver() para cancelar el registro cuando no sea necesario.