我正在处理一个android项目。我需要接收其他应用程序的使用时间。我只需要运行多少应用程序,它们是什么。如何访问这些数据?
我找到了一些有关接收另一个人的SQLite数据库的文章,但是我真的不需要这个。
答案 0 :(得分:1)
您可以按照以下步骤操作:
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);
}
答案 1 :(得分:1)
使用UsageStats
,UsageStatsManager
只是解决该主题的最佳方法。
https://developer.android.com/reference/android/app/usage/UsageStats
UsageStats.getLastTimeUsed()
按日期格式通知特定应用程序的上次使用时间。