拉风的咖菲猫
尝试这个:ActivityManager mActivityManager =(ActivityManager)this.getSystemService(Context.ACTIVITY_SERVICE);if(Build.VERSION.SDK_INT > 20){String mPackageName = mActivityManager.getRunningAppProcesses().get(0).processName;}else{ String mpackageName = mActivityManager.getRunningTasks(1).get(0).topActivity.getPackageName();}我们可以使用UsageStats:public static String getTopAppName(Context context) { ActivityManager mActivityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); String strName = ""; try { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { strName = getLollipopFGAppPackageName(context); } else { strName = mActivityManager.getRunningTasks(1).get(0).topActivity.getClassName(); } } catch (Exception e) { e.printStackTrace(); } return strName;}private static String getLollipopFGAppPackageName(Context ctx) { try { UsageStatsManager usageStatsManager = (UsageStatsManager) ctx.getSystemService("usagestats"); long milliSecs = 60 * 1000; Date date = new Date(); List queryUsageStats = usageStatsManager.queryUsageStats(UsageStatsManager.INTERVAL_DAILY, date.getTime() - milliSecs, date.getTime()); if (queryUsageStats.size() > 0) { Log.i("LPU", "queryUsageStats size: " + queryUsageStats.size()); } long recentTime = 0; String recentPkg = ""; for (int i = 0; i < queryUsageStats.size(); i++) { UsageStats stats = queryUsageStats.get(i); if (i == 0 && !"org.pervacio.pvadiag".equals(stats.getPackageName())) { Log.i("LPU", "PackageName: " + stats.getPackageName() + " " + stats.getLastTimeStamp()); } if (stats.getLastTimeStamp() > recentTime) { recentTime = stats.getLastTimeStamp(); recentPkg = stats.getPackageName(); } } return recentPkg; } catch (Exception e) { e.printStackTrace(); } return "";}//启用USAGE_STATS // Declare USAGE_STATS permisssion in manifest Intent intent = new Intent(Settings.ACTION_USAGE_ACCESS_SETTINGS); startActivity(intent);