Saltar al contenido

Detectar la contraseña incorrecta de la pantalla de bloqueo por usuario en Android

Solución:

Puede configurar un DeviceAdminReceiver que será notificado sobre los intentos fallidos de contraseña, así como sobre un intento de contraseña exitoso que ocurrió después de un intento fallido. Esto se trata en la documentación de las API de administración de dispositivos de Android.

Tenga en cuenta que el usuario deberá aceptar permitir que su aplicación funcione como administrador del dispositivo, a través de la aplicación Configuración, antes de que reciba estos eventos.

Este proyecto de muestra demuestra escuchar esos eventos, además de configurar una política de calidad de contraseña. Las piezas clave son:

  • los DeviceAdminReceiver implementación
  • los metadatos del administrador del dispositivo, indicando qué capacidades administrativas desea su aplicación
  • la entrada del receptor en el manifiesto
  • código en la actividad para detectar si su aplicación está aprobada para funcionar como administrador del dispositivo y, de lo contrario, lleve al usuario al lugar en Configuración para realizar ese cambio

Estoy haciendo lo mismo en Android Studio con API level-22. pero no pasa nada. Se muestra un error: “Instalando com.example.sourav.myfirstapp DEVICE SHELL COMMAND: pm install -r” /data/local/tmp/com.example.sourav.myfirstapp “pkg: /data/local/tmp/com.example .sourav.myfirstapp Failure [INSTALL_PARSE_FAILED_MANIFEST_MALFORMED]”

Aquí está mi detalle de mi proyecto – Actividad principal del receptor de administración-

public class AdminReceiver extends DeviceAdminReceiver {

@Override
public void onPasswordChanged(Context ctxt, Intent intent) {
    DevicePolicyManager mgr=
            (DevicePolicyManager)ctxt.getSystemService(Context.DEVICE_POLICY_SERVICE);
    int msgId;

    if (mgr.isActivePasswordSufficient()) {
        msgId=R.string.compliant;
    }
    else msgId = R.string.not_compliant;

    Toast.makeText(ctxt, msgId, Toast.LENGTH_LONG).show();
}

@Override
public void onPasswordFailed(Context ctxt, Intent intent) {
    Toast.makeText(ctxt, "u will never break!", Toast.LENGTH_LONG)
            .show();
    String tag="tag";
    Log.v(tag,"this massage from error" );
}

@Override
public void onPasswordSucceeded(Context ctxt, Intent intent) {
    Toast.makeText(ctxt, "good u enterd", Toast.LENGTH_LONG)
            .show();
    String tag="tag";
    Log.v(tag, "this massage from success");
}
}

manifiesto-

 <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
 package="com.example.sourav.myfirstapp" >
 


 <application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme" >

    <receiver
        android:name="AdminReceiver"
        android:permission="android.permission.BIND_DEVICE_ADMIN">
        <meta-data
            android:name="android.app.device_admin"
            />

        <intent-filter>

            <action    android:name="android.app.action.ACTION_PASSWORD_FAILED"/>
            <action     android:name="android.app.action.ACTION_PASSWORD_SUCCEEDED"/>
        </intent-filter>
    </receiver>
</application>

 </manifest>




Metadata-
 
 <device-admin xmlns:android="http://schemas.android.com/apk/res/android">

   <uses-policies>
    <limit-password/>

    <watch-login/>
</uses-policies>
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *