您好我正在开发一个应用程序,我需要在Facebook等某个应用上查找用户所花费的时间。
每当用户花费x分钟时,我想给用户一些奖励。有没有什么好方法可以在Android中实现这一目标?
答案 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
增加花费的时间,但这不会非常精确,我害怕。
另一种方法是控制自己打开这些应用程序,当它们离开并回到你的应用程序时,评估当时在前台花费的时间。
只是一些想法,我没有完整的答案,抱歉。