如何通过编程检查用户是否与其Android手机进行了交互?

3

我如何在程序中检测用户是否与Android手机的触摸屏或键盘进行过交互?交互可以是触摸或按键事件。创建一个服务来实现这个功能是否有帮助?我应该如何做到这一点?


2
踩?为什么?请在评论中说明原因。 - The Holy Coder
你有检查过这个吗?https://dev59.com/p2855IYBdhLWcg3wq2XL - surhidamatya
2个回答

0

如果您想在Activity中实现此功能,您可以重写ActivityonUserInteraction()方法。以下是该方法的Java文档:

每当键盘、触摸或轨迹球事件被分派到活动时调用。如果您希望知道用户在运行您的活动时以某种方式与设备交互,则实现此方法。此回调和onUserLeaveHint()旨在帮助活动智能地管理状态栏通知;具体而言,帮助活动确定取消通知的适当时间。

所有对您的活动的onUserLeaveHint()回调都将伴随着对onUserInteraction()的调用。这确保了您的活动将被告知相关的用户活动,例如下拉通知窗格并在其中触摸项目。

请注意,此回调将为开始触摸手势的触摸下行操作调用,但可能不会为后续的触摸移动和触摸抬起操作调用。


我的安卓应用没有任何活动。 - The Holy Coder
用户可以在主屏幕上触摸、解锁设备、按下任何按键或使用任何应用程序,此时我想知道用户与他们的手机互动了。 - The Holy Coder
好的..假设您正在开发一个真正的应用程序...为什么您想知道那个?...在您的应用程序中使用案例是什么?... - Praful Bhatnagar
由于安全目的,我无法分享应用程序的使用案例。 - The Holy Coder
也许你可以阅读系统日志并查找其中的启动活动类型的日志...请记住,从Android 4.1(Jelly Bean)开始,Android应用程序只能读取自己的日志条目... - Praful Bhatnagar

-1

有很多方法可以完成这个目的。您可以在View实例上重写ontouchevent、onclick事件。


我的应用程序中没有任何活动或用户界面。 - The Holy Coder
如果你的应用程序没有任何用户界面,那么用户要在哪里点击呢?而且为什么你需要知道用户的交互方式呢?你到底在问什么问题啊? - Rohit
用户可以在主屏幕上触摸、打开设备锁或按下任何键盘按钮,此时我想知道用户与他们的手机进行了交互。 - The Holy Coder
如果用户触摸了主屏幕或打开了他们的手机锁屏,那么你会给他一些空间/视图来触摸。然后你可以像在按钮的情况下一样获取该视图的实例。Button b1; b1=(Button)findViewById(R.id.button_id); b1.setOnClickListener(this); - Rohit
我不会提供任何类型的用户界面或任何小部件,只是想知道用户是否有交互? - The Holy Coder
也许你可以在这里找到解决方案: http://stackoverflow.com/questions/7513574/how-to-get-sequence-of-user-interaction-with-android-device - Rohit

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接