3

ご存知のように、「Viber」、「Line」などのアプリケーションでは、新しいメッセージがデバイスで受信されると、新しいアクティビティがポップアップしてユーザーにメッセージを表示します。画面はロックされていますが、ロック画面は却下しません。これはandroid 2.3.7の「Xperia U」でも起きています。アプリケーションで同じことをしたいのですが、次のフラグをウィンドウに追加しようとしました:

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

ウェイクロックも使用しますが、アプリケーションを表示せずに画面をオンにするだけです。それで、私は何をすべきですか?

4

1 に答える 1

0

次のコードを使用して、ロック画面を無効にすることができます。

PowerManager pm = (PowerManager) getSystemService(POWER_SERVICE);
    wl = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK
            | PowerManager.ACQUIRE_CAUSES_WAKEUP
            | PowerManager.ON_AFTER_RELEASE, "INFO");
    wl.acquire();

    KeyguardManager km = (KeyguardManager) getSystemService(KEYGUARD_SERVICE);
    kl = km.newKeyguardLock("name");
    kl.disableKeyguard();

マニフェストに必要な許可。

<uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />

onPause() または onDestroy()。

wl.release();
于 2017-02-06T07:59:11.943 に答える