如何找到任何Android应用程序的用户时间

时间:2014-12-14 07:47:16

标签: android

您好我正在开发一个应用程序,我需要在Facebook等某个应用上查找用户所花费的时间。

每当用户花费x分钟时,我想给用户一些奖励。有没有什么好方法可以在Android中实现这一目标?

2 个答案:

答案 0 :(得分:2)

如问题Detect When other Application opened or Launched中所述,您无法侦听其他应用程序启动信号,但您可以经常对打开的应用程序列表进行采样,以检查您要查找的应用程序是否a)运行并且b )在前台。

您必须在后台运行此应用程序作为服务,我很确定它可能对用户的手机电池寿命产生破坏性影响。

答案 1 :(得分:0)

您需要一个后台Service来检查手机的活动(前台应用程序)并计算其有效/前台已用时间。

列出前台应用

 <uses-permission android:name="android.permission.GET_TASKS" />

您可以使用ActivityManager.getRunningAppProcesses()检测当前的前台应用程序。 它将返回RunningAppProcessInfo条记录列表。

要确定哪个应用程序位于前台检查RunningAppProcessInfo.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND

花了多少时间

Process.getElapsedCpuTime()是最好的恕我直言。

很遗憾,我不知道如何获得另一个应用程序的Process ...

因此,每当应用程序处于前台时,您可以循环Service增加花费的时间,但这不会非常精确,我害怕。

另一种方法是控制自己打开这些应用程序,当它们离开并回到你的应用程序时,评估当时在前台花费的时间。

只是一些想法,我没有完整的答案,抱歉。