Блокировка устройства Android программно - PullRequest
22 голосов
/ 28 декабря 2010

Я пытался заблокировать устройство с помощью программы.Но я все еще не могу найти решение.Я хочу заблокировать Android froyo2.2 через программу.Я пробовал keyguardmanager и DeviceAdminManager.

Мое приложение для удаленной блокировки устройства.Когда сообщение получено с некоторыми кодовыми словами для блокировки, оно блокирует телефон.Я нашел много программ Api_demo в качестве решения, но я не могу извлечь из этого код блокировки один и найти решение.

Ответы [ 4 ]

15 голосов
/ 26 марта 2011

Класс активности должен быть внутренним классом, а внешний класс должен расширять 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);
      }
   }
}

Для блокировки устройства напишите код в случае, когда вы используете для блокировки

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

Если DeviceAdmin включен, телефон будет заблокирован. Чтобы включить администратора устройства, вызывается намерение DevicePolicyManager, и оно должно быть включено пользователем.

Intent intent = new   Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);  
intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, mDeviceAdminSample);        
3 голосов
/ 10 мая 2012

Для решения этой задачи вы можете взглянуть на исходный код NoKeyGuard , а точнее на класс обслуживания NoKeyGuard и класс KeyguardLockWrapper.

Для разблокировки устройства напишите код в случае, когда вы используете для разблокировки:

    Context context= getApplicationContext();
    KeyguardManager _guard = (KeyguardManager) context.getSystemService(Context.KEYGUARD_SERVICE);
    KeyguardLock _keyguardLock = _guard.newKeyguardLock("KeyguardLockWrapper");
    //to disable
    _keyguardLock.disableKeyguard();
    //to enable
    _keyguardLock.reenableKeyguard();
1 голос
/ 07 марта 2013

Класс активности должен быть внутренним классом, а внешний класс должен расширяться 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);
  }
 }
}
0 голосов
/ 16 апреля 2013
        WindowManager.LayoutParams lp = getWindow().getAttributes();
        lp.screenBrightness = 0;
        getWindow().setAttributes(lp);
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...