我正在开发基于实用程序的android应用程序,需要知道其他应用程序的上次使用时间。我能够使用 UsageStatsManager 管理信息,并且工作正常。
https://developer.android.com/reference/android/app/usage/UsageStatsManager.html
但问题是,它是在API 21中添加的,对于旧版本,它不起作用。
这就是为什么我需要另一个解决方案来获取21级之前API级别的信息,即API 8/9 - 20。 是否有任何不同的解决方案来获取信息,如任何隐藏的日志文件,其中存储系统或其他信息。
答案 0 :(得分:1)
我不熟悉Android的任何API< 21,但我看到一个非常简单的方法。
这涉及节省时间。
首先,你需要得到时间:
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm dd/MM/yyyy");
String currentDateandTime = sdf.format(new Date());,
然后你可以保存字符串。
我留给你。您可以使用Shared Prefs,SQLite,内部存储或外部存储。
至于解析日期:
SimpleDateFormat format = new SimpleDateFormat("HH:mm dd/MM/yyyy");
try {
Date date = format.parse(dtStart);
System.out.println(date);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
并检查this answer以检查应用是否已关闭。
On API< 21你必须拼凑很多功能才能获得你所要求的功能。您还可以检查应用程序何时打开以及何时关闭。当应用程序关闭时,您保存日期。
现在你可以在Android< 21检查上次使用应用的时间。
我建议你在Android上使用它< 21并在Api> = 21上使用UsageStatsManager。我建议的方式需要使用可以使用大量功能的服务。您需要这种方式的API级别而不是UsageStatsManager的数量缓慢减少。最终,您将能够独占使用UsageStatsManager。
答案 1 :(得分:0)
对于API级别21及更低版本,您可以尝试使用getRecentTasks方法。不建议将其用于应用程序中的核心逻辑,因此请自行承担风险。