重複する警告: この問題は、一部のフロントエンドとサービスの両方からの呼び出しに適した Android API の詳細を扱います。SO には多くの同様のスレッドがありますが、フロントエンドのみに焦点を当てています。
問題
プログラムでキーガードを有効にしたいので、たとえば、ユーザーがアプリのボタンをクリックすると電話がロックされます (電話ユーザーを使用するには、最初にロックを解除する必要があります)。
問題は、すべての有効なケースで機能する堅実な方法を見つけたいということです。
試み
私は試した:
lockNow
withDevicePolicyManager
-- 画面がオフの場合 (ただし、電話がロックされていない場合)、この呼び出しは無視されます (つまり、キーガードはアクティブ化されません)。reenableKeyguard
withKeyguardManager.KeyguardLock
-- メソッドの呼び出しは、考えられるすべてのケースで無視されますgoToSleep
withPowerManager
-- アクセス権の問題により、呼び出すことができません。DEVICE_POWER
既にこのアクセス権セットを持っているにもかかわらず、それが必要です
これまでのところ、最初の方法 ( ) を追求しlockNow
、画面がオフの場合にどうにか対処する追加のハックを使用しますが、非常に見苦しいので、簡単な方法があることを願っています。