2012-01-24 18 views
2

アンドロイドの近接センサーを使用して1つのアプリケーションを実行しています。センサーが変わったら電話をロックし、同じセンサーを使って電話がロックされているときは電話のロックを解除する必要があります。電話をロックするには、ダブルタップ機構を使用しています。単一のタップのみを使用してロックする。私のコードは以下の通りです:近接センサーロックを使用してホーム画面のロックを解除する

@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(); 
    } 
} 

ロック解除コードは最初のタップでのみ動作しています。私はそれが電話がロックされた後に実行する必要がありますが、それは動作していません。これを行う方法? Thxを事前に

答えて

-1

電話がロックされると、アプリケーションはスタンバイモードになり、コードの書き込みは機能しません。あなたは、このコードを実行する前に、ユーザーが許可を得て電話設定を変更する必要があるため、電話がロックされているときにアプリを開いたままにしておく必要があります。

+0

サービスを使用して、アプリのアクティビティが表示されないときにアクションを実行できます。 –

関連する問題