从后台服务,我得到一个启动器应用程序包名称。
使用的代码:
private String printForegroundTask() {
String currentApp = "NULL";
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {
UsageStatsManager usm = (UsageStatsManager) this.getSystemService(Context.USAGE_STATS_SERVICE);
long time = System.currentTimeMillis();
List<UsageStats> appList = usm.queryUsageStats(UsageStatsManager.INTERVAL_YEARLY, time - 1000 * 1000,
time);
if (appList != null && appList.size() > 0) {
SortedMap<Long, UsageStats> mySortedMap = new TreeMap<Long, UsageStats>();
for (UsageStats usageStats : appList) {
mySortedMap.put(usageStats.getLastTimeUsed(), usageStats);
}
if (mySortedMap != null && !mySortedMap.isEmpty()) {
currentApp = mySortedMap.get(mySortedMap.lastKey()).getPackageName();
}
}
} else {
ActivityManager am = (ActivityManager) this.getSystemService(Context.ACTIVITY_SERVICE);
currentApp = am.getRunningTasks(1).get(0).topActivity.getPackageName();
}
return currentApp;
}
当我启动下载应用程序时,我得到了包名称com.android.documentsui,但这个包属于 Documents 应用程序。
文档应用程序:com.android.documentsui
下载管理器应用程序:com.android.providers.downloads
下载应用程序:com.android.providers.downloads.ui
我正面临棒棒糖的这个问题。
我检查了应用程序锁定应用程序。我发现如果下载应用程序被锁定并启动,我将文档视为应用程序名称而不是下载,即应用程序锁定应用程序识别出所有上述定义的包属于同一个应用程序。
对此有任何想法吗?