2014-02-13 8 views
1

화면이 표시 될 때 화면을 잠금 해제해야하는 앱이 있습니다.Android에서 활동이 표시되면 기기 잠금 해제

.java 파일과 AndroidManifest에서 모두 코드를 작성했지만 장치를 잠금 해제 할 수 없습니다.

내 코드는 다음과 같습니다.

Uri ringtone = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE); 
    r = RingtoneManager.getRingtone(getApplicationContext(), ringtone); 
    r.play(); 

    /* 
    PowerManager pm = (PowerManager) getApplicationContext().getSystemService(Context.POWER_SERVICE); 
    WakeLock wakeLock = pm.newWakeLock((PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP), "TAG"); 
    wakeLock.acquire(); 


    KeyguardManager keyguardManager = (KeyguardManager) getApplicationContext().getSystemService(Context.KEYGUARD_SERVICE); 
    KeyguardLock keyguardLock = keyguardManager.newKeyguardLock("TAG"); 
    keyguardLock.disableKeyguard(); 


    window = getWindow(); 
    window.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED); 
    window.addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD); 
    window.addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON); 
    window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 

    */ 

    PowerManager pm = (PowerManager) getApplicationContext().getSystemService(Context.POWER_SERVICE); 
    WakeLock mWakeLock = pm.newWakeLock((PowerManager.PARTIAL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP), "MyService"); 
    mWakeLock.acquire(); 
    mWakeLock.release(); 

    Window window = getWindow(); 
    window.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED); 

이 코드의 잘못된 점은 무엇입니까?

도와 주시겠습니까?

나는 당신이 제공 한 모든 답변을했지만, 여전히

+0

실제로는 다른 장치에서 장치를 잠그는 동안 활동이 제한된 상호 작용을받을 수 있지만 장치를 "잠금 해제"하지는 않습니다. –

+0

좀 더 자세히 설명해 주시겠습니까 – erdemgc

+0

타사 앱이 실제로 장치를 실제로 잠금 해제하는 것은 허용되지 않습니다. 이 주제에 대한 많은 이전 질문이 있습니다. –

답변

0

당신은 3 개 플래그, 당신의 onCreate()

window = this.getWindow(); 
    window.addFlags(LayoutParams.FLAG_DISMISS_KEYGUARD); 
    window.addFlags(LayoutParams.FLAG_SHOW_WHEN_LOCKED); 
    window.addFlags(LayoutParams.FLAG_TURN_SCREEN_ON); 
FLAG_DISMISS_KEYGUARD, FLAG_SHOW_WHEN_LOCKEDFLAG_TURN_SCREEN_ON

import android.view.WindowManager.LayoutParams; 
private Window window; 

이 추가 필요없는 성공이없는 한

또는 onResume() 방법을 사용하면 나를 위해 작동합니다.)

protected void onResume() { 
    super.onResume(); 
    window = this.getWindow(); 
    window.addFlags(LayoutParams.FLAG_DISMISS_KEYGUARD); 
    window.addFlags(LayoutParams.FLAG_SHOW_WHEN_LOCKED); 
    window.addFlags(LayoutParams.FLAG_TURN_SCREEN_ON); 
} 
+0

을 호출하면 나에게 적합하지 않습니다. – erdemgc