【问题标题】:Simulate user input模拟用户输入
【发布时间】:2011-05-31 21:55:02
【问题描述】:

是否可以在android中模拟用户输入?

例如,有一些服务或一些线程将在后台工作并启动一些模拟用户输入的东西,所以如果我们在主屏幕上并且模拟输入(比如说点击)发生了,那么应用程序应该启动,如果坐标的模拟点击指向主屏幕上的某个图标,或者如果模拟输入指向时钟区域,则假设打开一个时钟...

或者,如果某些edittext 具有焦点并且按键的模拟输入开始,那么edittext 应该填充一些文本。 . .

我确信这可以在 .Net 或 java 中完成,但我不知道在 android 中是否可行

【问题讨论】:

    标签: android click simulation keystroke


    【解决方案1】:

    来自documentation on building accesibility services:

    从 Android 4.0(API 级别 14)开始,无障碍服务可以代表用户执行操作,包括更改输入焦点和选择(激活)用户界面元素。在 Android 4.1(API 级别 16)中,操作范围已扩大到包括滚动列表和与文本字段交互。无障碍服务还可以执行全局操作,例如导航到主屏幕、按下返回按钮、打开通知屏幕和最近的应用程序列表。

    (...)

    为了代表用户采取行动,您的无障碍服务必须 register 接收来自少数或多个应用程序的事件,并通过在service configuration file.

    有关详细信息,请参阅链接文档。

    【讨论】:

    • 是否有使用此 API 的示例?还是教程?它有什么特点,有什么限制?可以通过id获取视图并选择吗?它可以触摸任何地方吗?它可以获取视图层次结构(知道在哪里模拟触摸很重要)?
    • 嗨,如何使用辅助功能服务执行自定义滚动,即使用 dx 和 dy 之类的值?
    【解决方案2】:

    是否可以在android中模拟用户输入?

    仅来自单元测试套件。 IOW,不是您想的那样,因为这将是一个巨大的安全漏洞。

    【讨论】:

    • 请考虑更新此答案以包括使用无障碍服务。
    猜你喜欢
    • 1970-01-01
    • 2019-04-27
    • 2016-10-05
    • 1970-01-01
    • 1970-01-01
    • 2023-04-07
    • 2011-10-09
    • 2010-11-22
    相关资源
    最近更新 更多