2

我有一项活动,它在屏幕锁定时处于前台。这个活动有一个按钮,当它被按下时,它应该把 CALL LOG 活动带到前台,但是我只有解锁屏幕活动(见下图)。但是,如果我解锁该屏幕,我的第一个活动显示是 CALL LOG,但它应该在没有第一个解锁屏幕的情况下可见。(见下图)

我检查了屏幕锁定时如何显示活动?,但它不能正常工作!

基本上这是我的代码:

@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;
    }
}

图像1 图2

4

1 回答 1

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>
于 2013-03-14T01:20:09.333 回答