4

PARTIAL_WAKE_LOCK を使用してバックグラウンドで実行されるサービスがあります。誰かが (加速度計を使用して) デバイスを振るまで待機し、画面をオンにしてアクティビティを開始します。このコードを使用して画面のロックを解除します。

        PowerManager TempPowerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);
        PowerManager.WakeLock TempWakeLock = TempPowerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP |PowerManager.ON_AFTER_RELEASE, "TempWakeLock");
        TempWakeLock.acquire();

        // do the work that needs the visible display...

これまでのところ問題なく動作していますが、画面がオンになったら電話のロックを解除して、ユーザーが手動でスライドしたりパスワードを書いたりする必要がないようにする方法はありますか?

私はこれを使ってみました:

        mKeyGuardManager = (KeyguardManager) getSystemService(KEYGUARD_SERVICE);
        mLock = mKeyGuardManager.newKeyguardLock("activity_classname");
        mLock.disableKeyguard();

しかし、この奇妙なバグが発生し、変数名がストロークされます...

        The type KeyguardManager.KeyguardLock is deprecated
        Add @SuppressWarnings 'deprecation' to 'mLock'

これが正しい解決策であってもわかりませんが、機能していません...どうすればよいか知っている人はいますか?

要約すると、ユーザーが画面をスライドしたりパスワードを書いたりする必要がないように、画面のロックを解除してからアクティビティを開始するサービスを作成するつもりです...何かアイデアはありますか??

ありがとうございました!

4

0 に答える 0