安全问题: 我现在不知道这是如何发生的,但这个问题的读者会想到这个问题的解决方案是一种安全威胁。所以请记住,我感兴趣的所有数据都是测量用户进入/活动的时间。就这样。用户做了什么——我是NOT有兴趣!
我需要的是非常简单的概念,但我找不到解决方案。我想运行一个进程(在后台)并有一个用户交互的监听器。
因此,用户触摸屏幕 --> 我的方法被触发。
用户解锁手机 --> 我的方法被触发。
用户在物理键盘上键入 --> 我的方法被触发。
简而言之,当手机静止在桌子上时,我的方法不会被触发:-)请注意,交互是与整个手机进行的,而不是与我的应用程序进行的,而且我对用户输入字母“K”不感兴趣,我是我什至对用户输入的内容不感兴趣,我只关心用户以某种方式使用手机。
顺便提一句。用户边走边听音乐的状态(手机放在口袋里)——这不是交互。
我正在寻找的是一个触发器——比如INTERACTION_DETECTED
,或者(相反)一个回调方法,其设置如下reportInactiveUser(10*1000)
如果用户在 10 秒内不活动,则会调用该函数。
QUESTION如何检测用户交互?
目的:测量手动使用手机的时间。
(缺乏)进展
我发现BatteryStatsImpl
可以保存我需要的数据。它的实例由BatteryStatsService
,但是不允许任何访问它,仅IBatteryStats
而它只有一个有趣的方法——getStatistics
并且输出不包括用户活动计数器(或者它们全为零;我设置了所有权限)。所以,到目前为止——运气不好。
所有调用都必须通过反射进行,因为这些类无论如何都不可用;-)。
为此,您需要拦截与手机的物理交互。
对于屏幕触摸,这个包 http://developer.android.com/reference/android/gesture/package-summary.html会派上用场的。 *您可以使用this http://developer.android.com/reference/android/view/GestureDetector.html监听屏幕上的手势。
对于物理按钮触摸,我建议您看看this http://developer.android.com/reference/android/inputmethodservice/InputMethodService.html.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)