2

アクティビティが1つあり、画面がロックされている間はフォアグラウンドにあります。このアクティビティにはボタンがあり、ボタンを押すと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;
    }
}

image1 image2

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 に答える