我正在开发一个基于实用程序的 android 应用程序,需要知道另一个应用程序的最后使用时间。我能够使用 UsageStatsManager 管理信息,并且它工作正常。
https://developer.android.com/reference/android/app/usage/UsageStatsManager.html
但问题是,它是在 API 21 中添加的,对于旧版本它不起作用。
这就是为什么我需要另一种解决方案来获取 21 之前 API 级别的信息,即 API 8/9 - 20。 是否有任何不同的解决方案来获取信息,例如任何隐藏的日志文件,其中信息由系统或其他东西存储。
最佳答案
我不熟悉适用于 Android < 21 的任何 API,但我看到了一种非常简单的方法。
这涉及到您节省时间。
首先,你需要把握时间:
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm dd/MM/yyyy");
String currentDateandTime = sdf.format(new Date());,
然后就可以保存字符串了。
我留给你。您可以使用共享首选项、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用于检查应用程序是否已关闭。
在 API < 21 上,您必须拼凑大量功能才能获得所需的功能。您还必须检查应用程序何时打开以及何时关闭。当应用关闭时,您保存日期。
现在您可以在 Android <21 上检查上次使用应用的时间。
我建议您在 Android < 21 上使用它,并在 Api >= 21 上使用 UsageStatsManager。我建议的方法需要使用一个服务,它会消耗大量电量。您需要这种方式的 API 级别,而不是 UsageStatsManager 的数量在缓慢减少。最终您将能够独占使用 UsageStatsManager。
关于android - 识别上次使用 android 应用程序的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45140601/