このアプリで提供される機能を試して実装したいと思います
つまり、ユーザーは特定のアプリを実行するためにパスワードを入力する必要があります。どちらの方向に進むべきかわかりません。
バックグラウンドでサービスが実行されている必要があると思います。新しいアクティビティが開始されている場合は、パスワードで保護されているかどうかを確認してください。保護されている場合は、セキュリティ画面が表示されます。
この解決策はあなたを助けるかもしれません。
それを抽出します:
アクティビティが最後に一時停止されたときのシステム時刻とともにlong変数を格納します。
import android.app.Application;
public class MyApplication extends Application {
public long mLastPause;
@Override
public void onCreate() {
super.onCreate();
mLastPause = 0;
Log.w("Application","Launch");
}
}
すべてのonPauseメソッドで、この値を現在の時刻に更新します。
@Override
public void onPause() {
super.onPause();
((MyApplication)this.getApplication()).mLastPause = System.currentTimeMillis();
}
そして、すべてのonResumeで、現在の時刻と比較します。一定の時間(現在は5秒)が経過すると、パスワードプロンプトが表示されます。
@Override
public void onResume() {
super.onResume();
MyApplication app = ((MyApplication)act.getApplication());
if (System.currentTimeMillis() - app.mLastPause > 5000) {
// If more than 5 seconds since last pause, prompt for password
}
}
ストックデバイスでは不可能です。最善の方法は、特定のアプリを実行するためにパスワードを必要とするカスタムランチャーを作成することです。ユーザーはいつでもランチャーをストックのものに変更できるため、セキュリティ機能としてはあまり役に立ちません。ただし、(若い)子供がGmailなどにアクセスするのを防ぎたい場合は機能する可能性があります。それを実行可能に見えるようにする特定のハックがありますが、信頼できるものはありません。