활동

2012-03-04 7 views
3

내 질문에, 나는 방송 수신기에서 대화 상자를 표시하려면이 하나 How can I wake an android device up and skip the screenlock활동

과 유사 표시 할뿐만 안드로이드 API는 나 때문에 그렇게 할 수있게되지 않은 I 거기에서 활동을 시작하고이 활동의 ​​주제를 주제로 바꾸는 것을 사용하고 있습니다.

이제 휴대 전화가 잠김 모드/절전 모드 일 때도이 활동을 표시하고 싶습니다.

화면 아래 플래그를 사용하여 부를 켤 수 있지만 키 가드 (비보안) 수동으로 잠금을 해제해야합니다. 잠긴 화면 위에 내 창을 볼 수 없습니다.

차이가 나는 이것들을 사용하여이 기능을 달성에 성공하지 않는, 즉 내가

Window w = getWindow(); 
w.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON | 
      WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD | 
      WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON); 

답변

14

을 내 코드에서

android:theme="@android:style/Theme.Dialog 

사용하고 전체 화면 활동을 사용하지 오전입니다 플래그,하지만 난 WakeLockKeyguardLock을 사용하여 성공했습니다. 아래는 내가하는 일입니다 :

public class DismissLock extends Activity { 

PowerManager pm; 
WakeLock wl; 
KeyguardManager km; 
KeyguardLock kl; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    Log.i("INFO", "onCreate() in DismissLock"); 
    pm = (PowerManager) getSystemService(Context.POWER_SERVICE); 
    km=(KeyguardManager)getSystemService(Context.KEYGUARD_SERVICE); 
    kl=km.newKeyguardLock("INFO"); 
    wl = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP|PowerManager.ON_AFTER_RELEASE, "INFO"); 
    wl.acquire(); //wake up the screen 
    kl.disableKeyguard();// dismiss the keyguard 

    setContentView(R.layout.main); 

} 

@Override 
protected void onPause() { 
    // TODO Auto-generated method stub 
    super.onPause(); 
    wl.release(); //when the activiy pauses, we should realse the wakelock 
} 

@Override 
protected void onResume() { 
    // TODO Auto-generated method stub 
    super.onResume(); 
    wl.acquire();//must call this! 
} 

} 

물론 매니페스트 파일에서 권한을 선언해야합니다.

<uses-permission android:name="android.permission.WAKE_LOCK"/> 
<uses-permission android:name="android.permission.DISABLE_KEYGUARD"/> 
+0

@Hunag Thanks !!, Works – Pramod

+1

kl = km.newKeyguardLock ("INFO"); API 레벨 13 이후로 메소드가 사용되지 않습니다. ( Dialog의 테마 활동에서 키 잠금을 비활성화하는 방법에 대한 아이디어가 있으십니까? – TiGer

+0

멋지고 간단한 솔루션입니다. –