确定上次使用android应用程序的时间

时间:2017-07-17 09:33:03

标签: android

我正在开发基于实用程序的android应用程序,需要知道其他应用程序的上次使用时间。我能够使用 UsageStatsManager 管理信息,并且工作正常。

https://developer.android.com/reference/android/app/usage/UsageStatsManager.html

但问题是,它是在API 21中添加的,对于旧版本,它不起作用。

这就是为什么我需要另一个解决方案来获取21级之前API级别的信息,即API 8/9 - 20。 是否有任何不同的解决方案来获取信息,如任何隐藏的日志文件,其中存储系统或其他信息。

2 个答案:

答案 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方法。不建议将其用于应用程序中的核心逻辑,因此请自行承担风险。