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