8

ブロードキャスト レシーバーが screen_on によってアクティブ化されたときにキーガードを無効にするにはどうすればよいですか? (アクティビティは既に実行中です...)

画面オフによってトリガーされたブロードキャストレシーバーから次のコードを試しています...

KeyguardManager  myKeyGuard = (KeyguardManager)getSystemService(Context.KEYGUARD_SERVICE);
myLock = myKeyGuard.newKeyguardLock();
myLock.disableKeyguard();

そのままでは機能していないようです。画面をオンにすると、電話のキーガードを手動でロック解除して、その背後にあるアクティビティを明らかにする必要があります.

4

3 に答える 3

5

ウェイクアップ時にロック画面の一番上に表示する必要があるウィンドウがある場合は、ウィンドウフラグのdismiss_keyguardまたはshow_when_lockedを使用することをお勧めします。

http://developer.android.com/reference/android/view/WindowManager.LayoutParams.html#FLAG_SHOW_WHEN_LOCKED

使い方は次のとおりです(レイアウトを設定する前にonCreateで呼び出されます)

getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
于 2011-02-13T06:24:21.263 に答える
1

私は自分が間違ったことを理解したと思います。disable_keyguard パーミッションを使用している場合、マニフェストのタグ エラーだったようです。マニフェストを修正したので、正しく機能しています。

于 2010-11-23T14:12:08.560 に答える
1

Keyguard ソリューションが機能しているとは思えません (そして非推奨になっています)。私にとってうまくいくのPARTIAL_WAKE_LOCK は、決してリリースしないパーマネントをつかむことです。これにより、デバイスが真にスリープ状態になるのを防ぎ、ロック画面がアクティブになるたびに回避します。

その後、画面がオフになるたびに、その通知をリッスンして、デバイスを再び起動します。私がテストしたすべてのデバイスで動作します。

これによりデバイスのバッテリーがかなり速く消耗することを認識しているため、これは非常に慎重に慎重に使用する必要があります.

于 2014-03-28T00:31:33.407 に答える