安全问题: 我现在不知道它是如何发生的,但是这个问题的读者提出了这个问题的解决方案是一个安全威胁的想法。所以请记住,我感兴趣的所有数据都是测量用户/活动的时间。就这样。用户做了什么——我根本不感兴趣!
我需要的是非常简单的概念,但我找不到解决方案。我想运行一个进程(在后台)并监听用户交互。
所以,用户触摸屏幕——>我的方法被触发了。
用户解锁手机 --> 我的方法被触发。
物理键盘上的用户类型 --> 我的方法被触发。
所以简而言之,当手机仍然放在桌子上时,我的方法不会被触发 :-) 请注意,交互是与整个手机,而不是我的应用程序,我对用户输入字母“K”不感兴趣,我是甚至对用户输入的内容都不感兴趣,我只关心用户以某种方式使用手机。
顺便提一句。用户走路听音乐时的状态(手机放在口袋里)——这不是交互。
我正在寻找的是一个触发器——类似于INTERACTION_DETECTED
,或者(相反地)一个回调方法,它设置reportInactiveUser(10*1000)
为,如果用户不活动 10 秒,它将被调用。
问题如何检测用户交互?
目的:测量手动使用手机的时间。
(缺乏)进展
我发现它BatteryStatsImpl
可以保存我需要的数据。它的实例由 保存BatteryStatsService
,但是它不允许任何访问它,只有IBatteryStats
它又只有一个有趣getStatistics
的方法 - 输出不包括用户活动计数器(或者它们全为零;我将所有权限设置为)。所以,到目前为止——运气不好。
所有调用都必须通过反射进行,因为这些类无论如何都不可用;-)。