現在フォアグラウンドで実行されている/画面に表示されているアプリがない場合に何らかのポップアップを表示する単純なAndroidアプリを構築しようとしています(自分のアプリを除く)。では、現在画面上で実行されているアプリがないかどうかをどのように検出できますか?
前もって感謝します...
現在フォアグラウンドで実行されている/画面に表示されているアプリがない場合に何らかのポップアップを表示する単純なAndroidアプリを構築しようとしています(自分のアプリを除く)。では、現在画面上で実行されているアプリがないかどうかをどのように検出できますか?
前もって感謝します...
次を使用して、フォアグラウンドにあるアプリを取得できます。
ActivityManager activityManager = (ActivityManager) newContext.getSystemService( Context.ACTIVITY_SERVICE );
List<RunningAppProcessInfo> appProcesses = activityManager.getRunningAppProcesses();
for(RunningAppProcessInfo appProcess : appProcesses){
if(appProcess.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND){
Log.i("Foreground App", appProcess.processName);
}
}
次に、デバイス上のランチャーのパッケージ名と単純に比較appProcess.processName
します。これは次を使用して取得できます。
private String findLauncherPackageName(){
final Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
final ResolveInfo res = getPackageManager().resolveActivity(intent, 0);
Log.e("ANDRO_ASYNC", String.format("findLauncherPackageName()%s",res.activityInfo.packageName));
return res.activityInfo.packageName;
}