2012-10-19 3 views

답변

0

네이티브 솔루션을 찾았습니다. 경고 대화 상자를 작성하고 표시하기 전에 다음을 적용하십시오.

AlertDialog alertDialog = new AlertDialog.Builder(context).create(); 
     alertDialog.getWindow().setType(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED); 
     alertDialog.show(); 

그러면 잠금 화면 상단에 대화 상자가 표시됩니다.

+0

@llya_Gazman 작동하지 않습니다. 권한이 필요합니다. –

+0

@FaisalAhsan Nop, 권한이 없습니다. https://developer.android.com/reference/android/view/WindowManager.LayoutParams.html#FLAG_SHOW_WHEN_LOCKED –

2

잠금 화면이 함께 표시되어있는 경우 감지 할 수 있습니다

((KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE)).inKeyguardRestrictedInputMode(); 

그리고 당신이 현재 정상 활동 얻을 수 있습니다 : 이것은 일반적으로 잠금 화면 활동이 될 것입니다

(ActivityManager) getSystemService(Service.ACTIVITY_SERVICE).getRunningTasks(1).get(0).topActivity; 

를하지만이 가능 예를 들어 잠금 화면이 활성화되어있는 동안 전화 앱이 표시됩니다.이 경우 전화 활동이됩니다.

이 기능을 사용하려면 android.permission.GET_TASKS 권한이 필요합니다.

+0

심볼 getRunningTasks를 해결할 수 없습니다. –

0

정말 간단한 솔루션입니다.

KeyguardManager km = (KeyguardManager) getApplicationContext().getSystemService(Context.KEYGUARD_SERVICE); 

if(km.inKeyguardRestrictedInputMode()) { 
       //it is locked 

        } 
관련 문제