Question

J'ai essayé de verrouiller l'appareil à travers le programme. Mais je ne peux pas trouver la solution encore. Je veux verrouiller froyo2.2 Android à travers le programme. Je l'ai essayé et keyguardmanager DeviceAdminManager.

Mon application est de verrouiller à distance l'appareil. Lorsque le message est reçu avec quelques mots de code pour verrouiller alors il verrouille le téléphone. J'ai trouvé de nombreux programmes de Api_demo comme solution, mais je ne peux pas extraire le code de verrouillage seul de cette solution et trouver.

Était-ce utile?

La solution

La classe d'activité devrait être classe interne et la classe outter devrait étendre 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);
      }
   }
}

Pour verrouiller le dispositif écrire le code dans le cas où vous utilisez pour verrouillage

if (active) {
mDPM.lockNow();
}

Si DeviceAdmin est activée, le téléphone est verrouillé. Pour activer le dispositif d'administration, l'intention de DevicePolicyManager est appelée et elle doit être activée par l'utilisateur.

Intent intent = new   Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);  
intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, mDeviceAdminSample);        

Autres conseils

Afin de résoudre cette tâche, vous pouvez jeter un oeil au code source NoKeyGuard et plus précisément à une classe de service et NoKeyGuard classe KeyguardLockWrapper.

Pour déverrouiller le dispositif écrire le code dans le cas où vous utilisez pour déverrouiller:

    Context context= getApplicationContext();
    KeyguardManager _guard = (KeyguardManager) context.getSystemService(Context.KEYGUARD_SERVICE);
    KeyguardLock _keyguardLock = _guard.newKeyguardLock("KeyguardLockWrapper");
    //to disable
    _keyguardLock.disableKeyguard();
    //to enable
    _keyguardLock.reenableKeyguard();

La classe d'activité doit être la classe interne et la classe externe devrait étendre 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);
  }
 }
}
        WindowManager.LayoutParams lp = getWindow().getAttributes();
        lp.screenBrightness = 0;
        getWindow().setAttributes(lp);
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD); 
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top