当我尝试在Android TV应用程序中获取正在运行的应用程序时,它始终返回0。有人知道如何解决该问题以及如何获取Android TV的正在运行的应用程序吗?
下面您将找到代码我如何尝试获取正在运行的应用程序。 我还添加了清单中的所有权限。
activitymanager.getrunningtasks也不起作用,因为它只为您提供正在运行的应用程序,而我想查看其他正在运行的应用程序。
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {
UsageStatsManager usm = (UsageStatsManager)context.getSystemService(Context.USAGE_STATS_SERVICE);
long time = System.currentTimeMillis();
List<UsageStats> appList = usm.queryUsageStats(UsageStatsManager.INTERVAL_DAILY, time - 10000*10000, time);
if (appList != null && appList.size() == 0) {
Log.d("Executed app", "######### NO APP FOUND ##########" );
}
if (appList != null && appList.size() > 0) {
SortedMap<Long, UsageStats> mySortedMap = new TreeMap<Long, UsageStats>();
for (UsageStats usageStats : appList) {
Log.d("Executed app", "usage stats executed : " +usageStats.getPackageName() + "\t\t ID: ");
mySortedMap.put(usageStats.getLastTimeUsed(), usageStats);
}
if (mySortedMap != null && !mySortedMap.isEmpty()) {
String currentApp = mySortedMap.get(mySortedMap.lastKey()).getPackageName();
}
}
}