【问题标题】:How can I check programmatically that user has an interaction with their Android phone?如何以编程方式检查用户是否与他们的 Android 手机进行了交互?
【发布时间】:2012-12-21 09:55:46
【问题描述】:

如何以编程方式检查用户是否与 Android 手机的触摸屏或键盘进行了交互?交互可以是触摸或按键事件。为此创建服务对我有帮助吗?我该怎么做?

【问题讨论】:

标签: android android-service android-sensors


【解决方案1】:

如果您在 Activity.. 中谈论这样做,那么您可以覆盖 ActivityonUserInteraction() 方法。以下是该方法的java doc:

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

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

请注意,此回调将针对触地动作调用 开始触摸手势,但不能为触摸移动和 随后的修饰动作。

【讨论】:

  • 我的 Android 应用中没有任何活动。
  • 用户可以触摸主屏幕或打开设备锁或按任何键盘按钮或使用任何应用程序,当时我想知道用户与他们的手机进行了交互。
  • ok.. 假设您正在开发一个真正的应用程序...您为什么想知道这个?...您的应用程序的用例是什么?...
  • 出于安全考虑,我无法分享应用程序的用例。
  • 也许你可以读取系统日志并在其中查找启动活动类型的日志...请记住,从 Android 4.1 (Jelly Bean) 开始,Android 应用程序只能读取它们自己的日志条目...
【解决方案2】:

有很多方法可以完成这个目的。您可以覆盖视图实例上的触摸事件、点击事件。

【讨论】:

  • 我没有任何活动,或者您可以在我的应用中说用户界面。
  • 如果您的应用中没有任何用户界面,那么用户会点击哪里?为什么你需要知道用户交互?你在问什么问题?
  • 用户可以触摸主屏幕或打开设备锁或按任何键盘按钮,当时我想知道用户与他们的手机进行了交互。
  • 如果用户触摸主屏幕或打开他们手机上的锁,那么你给了他一些空间/视图来触摸。然后您可以像我们在按钮的情况下一样获取该视图的实例。按钮 b1; b1=(按钮)findViewById(R.id.button_id); b1.setOnClickListener(this);
  • 我没有提供任何类型的用户界面或任何小部件。只想知道用户是否进行了交互?
猜你喜欢
  • 2022-10-14
  • 1970-01-01
  • 2011-08-22
  • 2014-09-06
  • 1970-01-01
  • 1970-01-01
  • 2017-02-08
  • 2012-07-08
相关资源
最近更新 更多