【问题标题】:Android: click or scroll on behalf of user?Android:代表用户点击或滚动?
【发布时间】:2017-04-14 09:08:07
【问题描述】:

这可能吗?

我正在为残疾人开发一项服务。他们可以定义语音命令,服务可以检测命令并执行它们。就像当用户说“向下滚动”时,服务(实际上是一个后台进程)控制屏幕并向下滚动(不管前台是什么应用程序),或者触摸特定位置等等。我想知道这在android设备中是否可行?如果没有,那么有根设备呢? (即服务具有root权限)。我知道获得语音输入和处理它是可能的。我的问题是关于代表用户执行触摸 (Action_Down) 或滚动用户界面等操作。

请注意,我无权访问正在运行的任何应用程序!事实上,我的服务不知道在前台运行的应用程序。它可能是社交媒体应用程序或消息传递应用程序或游戏或其他任何东西!所以实际上我的服务必须能够定义输入事件,如触摸、滑动、滚动等。

提前致谢!

【问题讨论】:

    标签: android


    【解决方案1】:

    是的,这是可能的。

    例如,ListView 有两种程序化滚动的方法:

    listView.setSelection(id); //For instant scroll
    listView.smoothScrollToPosition(id); // For smooth scroll
    

    有关如何使用语音触发动作的示例 - check this answer out

    有关如何以编程方式注入事件的示例 - check this link out

    【讨论】:

    • 谢谢伙计!请注意,我无权访问正在运行的任何应用程序!事实上,我的服务不知道在前台运行的应用程序。它可能是社交媒体应用程序或消息传递应用程序或游戏或其他任何东西!所以事实上我的服务必须能够定义输入事件,如触摸、滑动、滚动……
    • 哦,我明白了。实际上可以完全通过语音命令来控制您的安卓设备。您可以查看此内容以了解详细信息 - makeuseof.com/tag/control-android-device-entirely-voice
    • 问题是,不是以编程方式控制您自己的应用程序可能是一个非常严重的安全问题。但是仍然有些人声称有一些方法可以做到这一点。查看此链接了解详情 - pocketmagic.net/injecting-events-programatically-on-android
    • 谢谢。关于以编程方式注入事件的最后一条评论是一个很好的线索。如果您将其包含在答案中,我将选择它作为正确答案。
    • 不客气!注入事件的链接已包含在答案中:)
    猜你喜欢
    • 2012-12-10
    • 1970-01-01
    • 1970-01-01
    • 2013-11-25
    • 1970-01-01
    • 2018-02-05
    • 2021-08-13
    • 1970-01-01
    • 2020-11-13
    相关资源
    最近更新 更多