获取前台应用名称
是名称,不是包名
public static synchronized String getAppName(Context context) {
PackageManager packageManager = context.getPackageManager();
ActivityManager activityManager = (ActivityManager)context.getApplicationContext().getSystemService(Context.ACTIVITY_SERVICE);
ComponentName runningTopActivity = activityManager.getRunningTasks(1).get(0).topActivity;
List<ApplicationInfo> infos = packageManager.getInstalledApplications(0);
List<RunningAppProcessInfo> runnings = activityManager.getRunningAppProcesses();
for (ApplicationInfo info : infos) {
String appName = packageManager.getApplicationLabel(info).toString();
String packageName = info.packageName;
for (RunningAppProcessInfo running : runnings) {
if (runningTopActivity.getPackageName().equals(packageName)) {
return appName;
}
}
}
return null;
}