特定のページにアクセスするたびに、またホームキーまたはrecentsキーを使用して戻ったときにもセキュリティプロンプトを表示する必要がありますが、ライフサイクルコールバックはさまざまなOEMで異なります。 アクティビティスタックを使用してトップアクティビティを監視しようとしましたが、アプリケーションパッケージのみが返されます。applockのようなアプリケーションでセキュリティロックを実装する必要があります
ActivityManager manager = (ActivityManager) getApplicationContext()
.getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningTaskInfo> runningTasks = manager.getRunningTasks(1);
String mPackageName="";
if(Build.VERSION.SDK_INT > 20){
mPackageName= manager.getRunningAppProcesses().get(0).processName;
}
else{
mPackageName = manager.getRunningTasks(1).get(0).topActivity.getPackageName();
}
if (runningTasks != null && runningTasks.size() > 0) {
ComponentName topActivity = runningTasks.get(0).topActivity;
if (!mPackageName.equals(getPackageName())) {
isTopActivityFromApp = false;
} else {
if (mPackageName.equals(getPackageName()) && topActivity.getClassName().equals(PaySendActivity.class.getName()) && !isTopActivityFromApp) {
// Other Application is opened
isTopActivityFromApp = true;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
if (WalletSharedPrefs.INSTANCE.isPatternLockEnabled(getApplicationContext())) {
showprompt();
}
}
}
}
あなたはNova LauncherのようなランチャーアプリケーションやGo Launcherなどをビルドする必要があると思います。私はそれが他のアプリケーションの仕事を傍受する唯一の方法だと思う。 –
いいえ、私はランチャーアプリを開発する必要はありません、私がする必要があるのは、ユーザーが家に帰るたびに自分の活動の1つに安全なロックを表示することです。 –