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'
これが正しい解決策であってもわかりませんが、機能していません...どうすればよいか知っている人はいますか?
要約すると、ユーザーが画面をスライドしたりパスワードを書いたりする必要がないように、画面のロックを解除してからアクティビティを開始するサービスを作成するつもりです...何かアイデアはありますか??
ありがとうございました!