当屏幕被锁定时,我有一个活动及其前景。这个活动有一个按钮,当按下它时,它应该将CALL LOG活动带到前台,但我只能获得解锁屏幕活动(见下图)。但是,如果我解锁该屏幕,我的第一个活动显示是CALL LOG,但它应该在没有首先解锁屏幕的情况下可见。希望我很清楚。 (见下面的照片)
我检查了How to display Activity when the screen is locked?,但它没有按预期工作!
基本上这是我的代码:
@Override
public void onClick(View v) {
switch(v.getId()) {
case R.id.missed_call_IV:
//finish();
Intent showContacts = new Intent(Intent.ACTION_VIEW, Calls.CONTENT_URI);
startActivity(showContacts);
Window w;
w = getWindow();
w.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
w.addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
w.addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
break;
}
}
答案 0 :(得分:3)
使用程序中的KeyGuardLock
KeyguardManager km = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);
KeyguardLock keyguard = km.newKeyguardLock("MyApp");
解锁屏幕
keyguard.disableKeyguard();
并且在完成任务后不要忘记再次锁定
keyguard.reenableKeyguard();
在清单中使用以下权限
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" >
</uses-permission>