programacion - Bloquee el dispositivo Android programáticamente
manual de android en pdf (4)
La clase de actividad debe ser de clase interna y la clase de salida debe extender DeviceAdminReceiver
public class adminActivity extends DeviceAdminReceiver {
public static class Controller extends Activity {
DevicePolicyManager mDPM;
ComponentName mDeviceAdminSample;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mDPM = (DevicePolicyManager)getSystemService(Context.DEVICE_POLICY_SERVICE);
mDeviceAdminSample = new ComponentName(Controller.this,
adminActivity.class);
}
}
}
Para bloquear el dispositivo, escriba el código en el caso de que use para bloquear
if (active) {
mDPM.lockNow();
}
Si DeviceAdmin está habilitado, el teléfono se bloqueará. Para habilitar el administrador del dispositivo, se invoca el intento DevicePolicyManager y el usuario debe habilitarlo.
Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, mDeviceAdminSample);
He estado intentando bloquear el dispositivo a través del programa. Pero aún no puedo encontrar la solución. Quiero bloquear Android froyo2.2 a través del programa. He intentado con keyguardmanager y DeviceAdminManager.
Mi aplicación es para bloquear de forma remota el dispositivo. Cuando se recibe un mensaje con algunas palabras de código para bloquear, entonces bloquea el teléfono. He encontrado muchos programas Api_demo como solución, pero no puedo extraer el código de bloqueo solo de eso y encontrar una solución.
La clase de actividad debe ser la clase interna y la clase externa debe extender DeviceAdminReceiver
public class adminActivity extends DeviceAdminReceiver {
public static class Controller extends Activity {
DevicePolicyManager mDPM;
ComponentName mDeviceAdminSample;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mDPM = (DevicePolicyManager)getSystemService(Context.DEVICE_POLICY_SERVICE);
mDeviceAdminSample = new ComponentName(Controller.this,
adminActivity.class);
}
}
}
Para resolver esta tarea puede echar un vistazo al código fuente NoKeyGuard y más precisamente a una clase de servicio NoKeyGuard y una clase KeyguardLockWrapper.
Para desbloquear el dispositivo, escriba el código en caso de que use para desbloquear:
Context context= getApplicationContext();
KeyguardManager _guard = (KeyguardManager) context.getSystemService(Context.KEYGUARD_SERVICE);
KeyguardLock _keyguardLock = _guard.newKeyguardLock("KeyguardLockWrapper");
//to disable
_keyguardLock.disableKeyguard();
//to enable
_keyguardLock.reenableKeyguard();
WindowManager.LayoutParams lp = getWindow().getAttributes();
lp.screenBrightness = 0;
getWindow().setAttributes(lp);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);