张大妈

000_ESP32蓝牙HID源码,不需要任何权限的自动化,代码概括性讲解及任务测试

源自UP主:huanyingwzy

02-12 14:20

探索一种基于ESP32蓝牙HID的安卓自动化新方案。该方法巧妙绕过了系统权限限制,无需Root和无障碍服务,通过软硬件结合实现点击、滑屏等操作,为自动化爱好者提供了全新的低成本解决思路。

000_ESP32蓝牙HID源码,不需要任何权限的自动化,代码概括性讲解及任务测试智能速览

  • 核心原理:利用ESP32模拟蓝牙键鼠,绕过安卓权限限制。

  • 项目构成:提供完整的ESP32源码与安卓APK源码。

  • 指令执行:通过蓝牙接收并解析来自手机端的指令,如Home、返回、滑屏。

  • 自动化集成:演示了如何将APK功能集成到“懒人”等自动化平台。

  • 二次调用:支持通过HTTP请求直接调用,扩展了使用场景。

000_ESP32蓝牙HID源码,不需要任何权限的自动化,代码概括性讲解及任务测试精华内容

这套方案的精妙之处在于,它将安卓设备接收到的指令,通过蓝牙转发给一个伪装成键盘鼠标的“翻译官”——ESP32开发板,从而在物理层面执行操作。

ESP32端逻辑

ESP32端的代码是实现此方案的核心。它首先获取板子的MAC地址,并加上一个可自定义的前缀(如“QL_”)作为蓝牙广播名称,方便手机识别。初始化蓝牙HID服务后,它便进入等待指令的状态。

核心功能是一个回调函数,用于接收并解析来自手机APK的字符串指令。当接收到如“home”、“back”等指令时,程序会匹配对应的函数,并将模拟的键盘或鼠标事件通过蓝牙发送给安卓系统。

代码中还加入了执行状态反馈,当指令执行完毕后,板载LED会闪烁,直观地表明设备正在正常工作。整个逻辑被动、清晰,无需复杂修改即可使用。

安卓APK设计

安卓端的APK是用户与ESP32交互的桥梁。它基于BLE(低功耗蓝牙)管理器进行了封装,将复杂的蓝牙通信细节隐藏起来,提供了简单易懂的调用接口。

APK源码中包含了连接、断开蓝牙、点击、长按、滑动等一系列与自动化操作对应的函数。例如,用户调用滑屏函数时,APK会将其转换成一段包含坐标、时长等信息的特定字符串,通过蓝牙发送给ESP32。

这种设计使得APK既可以作为独立应用使用,也可以被打包成SDK,被其他自动化平台调用,灵活性很高。

自动化平台集成

要实现复杂的自动化任务,需要将APK与自动化脚本平台结合。以“懒人”平台为例,首先需要将编译好的APK文件导入项目资源中。

在脚本代码里,先加载这个APK并引入其中的核心类(例如`net.hid.ble.HID`)。之后,就可以像调用普通函数一样,使用`HID.连接()`、`HID.点击(x,y)`、`HID.滑屏(x1,y1,x2,y2,时间)`等方法来控制手机。

整个过程对用户屏蔽了底层的蓝牙通信,极大降低了编写自动化脚本的门槛,使得复杂的任务编排变得简单。

任务实测表现

实际测试验证了方案的可行性。演示中,ESP32开发板成功与安卓手机配对,蓝牙名称显示为预设的“QL_D870A9A0ED30”。通过向APK发送HTTP请求,手机立刻响应并返回了主屏幕。

随后,运行一个在“懒人”平台中编写的连续滑屏任务,手机流畅地执行了10次滑动操作,整个过程稳定且未出现任何权限请求。这表明该方案在执行物理点击和手势方面非常可靠,为自动化任务提供了稳定的基础。

此方案为安卓自动化领域开辟了一条无需权限的蹊径,尤其适合需要稳定、物理级操作的场景。尽管配置初期涉及硬件和编译,但一旦搭建完成,其通用性和稳定性优势明显。这是否会激发更多基于硬件辅助的自动化创意?

内容由AI生成
0
扫一下,分享更方便,购买更轻松
0评论

当前文章无评论,是时候发表评论了
提示信息

取消
确认
评论举报

最新文章 热门文章