1

KeyGuard (ロック画面) が表示されているかどうかをサービスから確認するにはどうすればよいですか? オリジナルおよびカスタムのロック画面をサポートしたい。

4

1 に答える 1

4

デバイスが画面をオフにした場合にのみ、画面がロックされます。

次のように、 拡張BroadcastReceiverして実装する必要があります。onReceive

public class YourBroadcastReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        if (Intent.ACTION_SCREEN_OFF.equalsIgnoreCase(intent.getAction())) {
            //screen has been switched off!
        }
    }
}

次に、それを登録するだけで、画面がオフになっているときにイベントの受信を開始します。

IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_ON);
filter.addAction(Intent.ACTION_SCREEN_OFF);
appBroadcastReceiver = new AppBroadcastReceiver(yourActivity);
registerReceiver(appBroadcastReceiver, filter);

画面が消えてから数秒後にユーザーがデバイスをロックするように設定されているというエッジケースがありnます。ブロードキャストレシーバーにチェックを追加して、ACTION_SCREEN_ONそれらの間の時間をチェックすることをお勧めします。

于 2013-03-12T17:46:14.220 に答える