获取系统当前前台应用包名,亲测可用
/**
* 获取系统当前前台应用包名
* @param context
* @return
*/
public static String getTopAppPackageName(Context context) {
//Get the app record in the last month
Calendar calendar = Calendar.getInstance();
final long end = calendar.getTimeInMillis();
calendar.add(Calendar.MONTH, -1);
final long start = calendar.getTimeInMillis();
UsageStatsManager usageStatsManager = (UsageStatsManager) context.getSystemService(Context.USAGE_STATS_SERVICE);
UsageEvents usageEvents = usageStatsManager.queryEvents(start, end);
UsageEvents.Event event = new UsageEvents.Event();
String packageName = null;
while (usageEvents.hasNextEvent()) {
usageEvents.getNextEvent(event);
if (event.getEventType() == UsageEvents.Event.ACTIVITY_RESUMED) {
packageName = event.getPackageName();
}
}
return packageName;
}