特定の WiFi ネットワークに接続するとキーガードを無効にし、切断するとキーガードを復元するサービスを実装したいと考えています。
Galaxy Nexus (CM10) と HTC Desire (MIUI) で、次の解決策を試しましたが、うまくいきませんでした:
- サービス内から disableKeyguard() と reenableKeyguard() を使用してみました。問題は、最初はキーガードを無効にすることですが、別のアプリケーションを開いてホームを押すと、突然キーガードが取得されます。その後、まったく機能しません。また、これらの関数は非推奨です。
- new_task フラグを使用して、サービス内から開始する新しいアクティビティを作成しました。アクションに、showkeyguard と hidekeyguard のいずれかを指定しました。したがって、getWindow().addFlags() を使用して FLAG_DISMISS_KEYGUARD または FLAG_SHOW_WHEN_LOCKED を設定しました。問題は、アクティビティが表示され、表示されたままにしておく必要があることです。
サービスからこれを行う方法を提案できる人はいますか? 最初の解決策がサービスからそれを行う唯一の方法である場合、廃止されたものは気にしません。私が知りたいのは、なぜそのように振る舞っているのかということです。
ありがとう。