安卓远程控制 模拟手势部分是怎么实现的?

2023-04-15 18:05:31 +08:00
 MudBodhisattva
无障碍服务只能控制到其他的 app ,调用 adb 的话需要 root 想不出向日葵那种它是怎么做到控制的
1793 次点击
所在节点    程序员
13 条回复
xiaowowo
2023-04-15 20:15:28 +08:00
无障碍权限之类的吧。多年前做安卓开发的时候记得 adb 可以直接赋予某个应用模拟点击权限,不用 root
beixiao
2023-04-15 23:54:30 +08:00
可以参考下 scrcpy 怎么实现的,可以投屏和手势控制
SlipStupig
2023-04-16 00:05:32 +08:00
安卓有所有操作都是 /dev/input 设备来实现的,通过向设备发送消息就可以了
uasier
2023-04-16 02:40:55 +08:00
minitouch
calloc
2023-04-16 11:43:18 +08:00
开了 adb 就能点击
DrLty
2023-04-16 12:00:16 +08:00
不用 root 权限,adb 的 shell 权限就可以读写 /dev/input 来发送触摸事件了,还能用 uinput 实现创建虚拟触屏鼠标键盘手柄之类操作。用 adb 激活的那种应该是开了一个进程,然后 app 和进程通信实现的。
MudBodhisattva
2023-04-18 08:06:17 +08:00
@xiaowowo 无障碍不行 它只能操作针对 app 上的视图
MudBodhisattva
2023-04-18 08:07:14 +08:00
@calloc 那是要连上 pc 用 adb 敲命令控制吧
MudBodhisattva
2023-04-18 08:08:19 +08:00
@DrLty 我试过用跑 input tap 没反应 设备需要 root
MudBodhisattva
2023-04-18 08:13:20 +08:00
@uasier ok 我看看
DrLty
2023-04-18 09:38:12 +08:00
@MudBodhisattva 试试 getevent 和 sendevent ,或者写个程序直接读写 /dev/input/eventX 试试
MudBodhisattva
2023-04-18 10:13:12 +08:00
@DrLty 打算直接写一个程序用 app_process 跑 但是这么做必须连一次 adb 启动程序
MudBodhisattva
2023-04-18 16:42:40 +08:00
@xiaowowo 确实能用 我仔细看了一下文档并且已经实现了功能

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/932782

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX