2013-09-01 3 views
0

화면이 잠겨있는 경우 내 활동을 연기하고 싶습니다. 예를 들어, 화면이 잠겨 있으면 사용자가 화면을 잠금 해제 한 후 즉시 내 활동을 시작할 때이를 감지하고 싶습니다. 이것은 잠긴 경우 현재 감지하고 있습니다. 하지만 잠긴 상태에서 내 활동을 시작하는 방법을 알아낼 수 없습니다. 화면 잠금이 해제되면 KeyguardManager가 자동으로 업데이트합니까? 감사!전화가 다시 연결되면 내 활동 시작

KeyguardManager myKM = (KeyguardManager) context.getSystemService(Context.KEYGUARD_SERVICE); 
if(myKM.inKeyguardRestrictedInputMode()) { 
//it is locked 
else 
{ 
    //it is unlocked 
} 

답변

1

KeyGuardManager의 동작을 알지 못하지만 브로드 캐스트 리시버를 사용하여 대안을 제공 할 수 있습니다.

<receiver android:name="com.the.phonagramtwo.UserPresentReciever" > 
    <intent-filter> 
     <action android:name="android.intent.action.USER_PRESENT" /> 
    </intent-filter> 
</receiver> 
  • 정의 :

    1. 하는 매니페스트
    2. 등록 수신기 및 지정 다음과 같은 의도 필터 브로드 캐스트 리시버를 확장 새 클래스를 만듭니다 : 내 응용 프로그램에서

      , 나는 다음과 같은했다 onRecieve 메서드에서 잠금을 해제 한 후 원하는 동작을 참조하십시오.

      public class UserPresentReciever extends BroadcastReceiver { 
      
          public void onReceive(Context context, Intent intent) { 
           Activity a = new Activity; 
           Intent i = new Intent(a.getBaseContext(), ActivityYouWithToStart.class); 
           a.startActivity(i); 
          } 
      } 
      
  • +0

    감사합니다. 이 onReceive 클래스는 사용자가 잠금을 해제하면 자동으로 감지합니까? – AndroidLove

    +0

    그런 식으로 생각하면 도움이 될 것입니다. 괜찮습니까? 다음 [documentation] (http://developer.android.com/guide/components/intents-filters.html)을 읽어 보시기 바랍니다. 길고 건조하며 완전히 지루하지만이 주제에 대해 많은 것을 설명합니다. BroadcastReceivers 섹션을 참고하십시오. – TheDudeAbides

    +0

    설명해 주셔서 감사합니다. :디 – AndroidLove

    관련 문제