android - 如何检测任何类型的用户交互?

标签 android events user-interaction

安全问题: 我现在不知道它是怎么发生的,但是这个问题的读者提出了这个问题的解决方案是一个安全威胁。所以请记住,我感兴趣的所有数据都是测量用户进入/Activity 的时间。就这样。用户做了什么——我根本不感兴趣!


我需要的是非常简单的概念,但我找不到解决方案。我想运行一个进程(在后台)并监听用户交互。

因此,用户触摸屏幕 --> 我的方法被触发。

用户解锁手机 --> 我的方法被触发。

物理键盘上的用户类型 --> 我的方法被触发。

所以简而言之,当手机仍然放在 table 上时,我的方法不会被触发 :-) 请注意,交互是与整个手机进行的,而不是与我的应用程序进行的,我对用户输入字母“K”不感兴趣,我什至对用户输入的内容不感兴趣,我只关心用户以某种方式使用手机。

顺便说一句。用户边走边听音乐(手机放在口袋里)时的状态 -- 这不是交互。

我正在寻找的是一个触发器——类似于 INTERACTION_DETECTED,或者(相反)设置为 reportInactiveUser(10*1000) 的回调方法,它如果用户处于非 Activity 状态 10 秒,将被调用。

问题如何检测用户交互?

目的:测量手动使用手机的时间。

(缺乏)进展

我发现 BatteryStatsImpl 可以保存我需要的数据。它的实例由 BatteryStatsService 保存,但是不允许对其进行任何访问,只有 IBatteryStats 而它只有一个有趣的方法 -- getStatistics 并且输出不包括用户 Activity 计数器(或者它们全为零;我设置了所有权限)。所以,到目前为止 -- 运气不好。

所有调用都必须通过反射进行,因为这些类无论如何都不可用 ;-)。

最佳答案

为此,您想拦截与手机的物理交互。

对于屏幕触摸,this package会派上用场的。 *您可以使用this收听屏幕上的手势。

对于物理按键触摸,我建议你看看this .

关于android - 如何检测任何类型的用户交互?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11782501/

相关文章:

Javascript - Dojo - 对象对自身的引用

ios - 如何检测自上次触摸 iOS 中特定 View Controller 以来用户的不活动状态?

iOS 其他应用中的点击/拖动事件

java - android 等待某事

android - 如何从我自己的 Android 应用程序调用内置相机应用程序?

android - itext for android 和 lint 错误

matlab - 丢弃连续调用输入之间的键盘事件 (MATLAB)

android - AppCompat v22.1.0 没有为 fragment 正确设置所有 xml 小部件的主题

c# - 如何接收 SQL Server 事件探查器事件?

javascript - 为什么我的 onClick 事件没有在 React 上触发?