次の問題があります。画面をロックするアプリを作ろうとしています。 DevicePolicyManagerを介したメソッドは非常にうまく機能します。ここまでは順調ですね。しかし、DPMで電話をロックすると、指紋ロック解除方法が無効になり、パターン(またはPINまたは設定したもの)を入力して電話のロックを解除する必要があります。通常の方法でロックした場合(つまり、電源ボタン付き)指紋ロック解除が機能します。
だから私の質問は、プログラムで画面をロックし、その後指紋を使用して画面をロック解除する方法ですか?
PS:私はマシュマロ系統OSを備えた銀河s5ミニを持っています
それが通常の流れです。デバイスが再起動された状態になり、デバイスはパターンまたはパスワードを要求します。 GoogleはこのためのAPIを提供していません。ロック機能を備えたPlayStore内のアプリは、このように動作することを確認できます。
編集済み:以下のクエリについて、あなたが質問した回答はここで共有されます
ユーザーが電源ボタンを使用せずに(たとえば、アプリを使用して)電話をロックし、指紋を使用してロックを解除できるようにするにはどうすればよいですか?
アプリがデバイスをロックするために呼び出すAPIは意図的にありません。
これに関してセキュリティ上の理由/懸念事項はありますか?
はい、アプリによるデバイスのロックを許可する場合、DOS(サービス拒否)の問題があります。意図的または偶発的(アプリのバグ)。
ここで見つかりました[ https://code.google.com/p/Android/issues/detail?id=79735#c115]
電源ボタンではなく、アプリのショートカットでロックする方法を探す必要があると思います。少なくとも私はこのレベルに貢献できます。
Apexランチャーまたはnovaランチャーがどのように機能しているかに注目してください。 Apexランチャーまたはnovaランチャーによる画面ロックは指紋スキャナーを無効にしません!
実際に行うことは、画面を完全な黒、つまりソフトロック(ユーザーに画面オフの誤った印象を与える)に設定し、5〜10秒後にタイムアウトによりディスプレイが実際にオフになることです。
同じ機能を実装した他のアプリ OFF +(画面オフ/指紋ロック解除のサポート) 。(変更されると思います "lock screen timeout" )
スマートフォンがルート権限を取得している場合は、シェルコマンドを実行して電源キーsu input keyevent 26
をシミュレートできますが、わずかな遅延が発生する可能性があります。
まあ、rootユーザーが見ている場合、この問題を解決するxposedモジュールもあります FingerprintEnabler
JerryGoyalの優れた answer にポイントを追加したいと思います。
以下は、画面をロックする2つの方法を示すMicrosoft Launcherのスクリーンショットです。 Device Policy Managerを介した方法はフィンガープリントでは機能しないことを明確に述べています。
回避策は、画面がタイムアウトするまで黒い画面を表示することです。
次の画面では、システムの設定を変更して画面のタイムアウト期間を変更する許可を求めます。