2016-12-16 11 views
0

特定のページにアクセスするたびに、またホームキーまたは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(); 
          } 
         } 
        } 
       } 
+0

あなたはNova LauncherのようなランチャーアプリケーションやGo Launcherなどをビルドする必要があると思います。私はそれが他のアプリケーションの仕事を傍受する唯一の方法だと思う。 –

+0

いいえ、私はランチャーアプリを開発する必要はありません、私がする必要があるのは、ユーザーが家に帰るたびに自分の活動の1つに安全なロックを表示することです。 –

答えて

0

アプリでトップの活動を管理したい場合は、それを行うための最善の方法は、あなたのonResumeをリッスンすることです、あなたは、サードパーティのライブラリを使用することができますし、あなたが here

0

探しているものを見つけることができます/ onPauseメソッドをActivityLifecycleCallbacks で管理していますが、他のアプリのトップアクティビティを管理したい場合は、トップアクティビティのクラス名ではなく、パッケージ名のみをトラッキングすることができ、UsageStatsManagerを使用するのが最適です。

関連する問題