Использование блокировки датчика приближения и разблокировка домашнего экрана - PullRequest
2 голосов
/ 24 января 2012

Я делаю одно приложение, используя датчик приближения в Android. при замене датчика он должен заблокировать телефон, а когда телефон заблокирован с использованием того же датчика, он должен разблокировать телефон. Для блокировки телефона использую двойной тап механизам. для блокировки используется только один кран. мой код как показано ниже:

@Override
 public void onSensorChanged(SensorEvent event) {
 // TODO Auto-generated method stub
  if(event.sensor.getType()==Sensor.TYPE_PROXIMITY){

         if(curTime2 - curTime1 < 1000) 
      {
        Tap++;
        if(Tap==2 ) //&& (curTime2 - curTime1)==100000)
        {
          mDPM = (DevicePolicyManager)getSystemService(Context.DEVICE_POLICY_SERVICE);                 
            mDeviceAdminSample = new ComponentName(Controller.this,
            LockScreenActivity.class);              
          active = mDPM.isAdminActive(mDeviceAdminSample);
          if(active){
            mDPM.lockNow();
            flagLock = true;
              }
       Tap=0;   

         // unlock

     if(flagLock == false){ 
         mKeyGuardManager = (KeyguardManager) getSystemService(KEYGUARD_SERVICE);
     mLock = mKeyGuardManager.newKeyguardLock("activity_classname");
     mLock.disableKeyguard();
    }
}

Код разблокировки работает только при первом нажатии. Мне нужно, чтобы он выполнялся после блокировки телефона, но он не работает. Как это сделать? Спасибо заранее

1 Ответ

0 голосов
/ 24 октября 2014

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

...