我正在研究一个android项目。我需要接收其他应用程序的使用时间。我只需要运行多少应用程序以及它们是什么。如何访问这些类型的数据?
我发现了一些关于接收另一个SQLite DB的文章,但我真的不需要这个。
您可以按照以下步骤操作:
PackageName
AppName
获取PackagName
AppName
这是实施:
private List<String> getRunningAppList()
{
Set<String> appNameList = new HashSet<>();
PackageManager pm = getPackageManager();
ActivityManager aManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
// Get the list of the tasks that are currently running
List<ActivityManager.RunningTaskInfo> infoList = aManager.getRunningTasks(Integer.MAX_VALUE);
for (ActivityManager.RunningTaskInfo taskInfo : infoList)
{
// Get the packageNAme
String pkgName = taskInfo.topActivity.getPackageName();
String appName = null;
// Get the appName
try
{
appName = pm.getApplicationLabel(pm.getApplicationInfo(pkgName,PackageManager.GET_META_DATA)).toString();
} catch (PackageManager.NameNotFoundException e)
{
e.printStackTrace();
}
// Adding the appName
appNameList.add(appName);
}
return new ArrayList<>(appNameList);
}
使用UsageStats
,UsageStatsManager
只是这个主题的最佳方法。
https://developer.android.com/reference/android/app/usage/UsageStats
UsageStats.getLastTimeUsed()
按日期格式通知您特定应用程序的上次使用时间。