You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python向Android设备发送HID数据?(Windows环境)

Windows向Android 6.0+发送鼠标键盘HID数据的实现方法及数据包格式

通用实现方法

USB OTG模拟HID设备

  • 硬件要求:带USB接口的Windows电脑、支持USB OTG的Android设备,搭配一根OTG转接线。
  • 操作步骤:
    • Windows端借助libusb或Windows原生HID API编写程序,将电脑模拟为HID键盘/鼠标设备。
    • Android 6.0+默认支持USB Host模式,无需Root,系统会自动识别模拟的HID设备,无需额外驱动。
    • 在Windows程序中发送符合HID规范的数据包,Android系统会直接解析为键盘或鼠标输入事件。

蓝牙HID模拟

  • 操作步骤:
    • Windows端使用系统蓝牙API(如蓝牙HID Profile相关接口),将电脑模拟成蓝牙HID键盘/鼠标设备。
    • Android端开启蓝牙,与模拟设备完成配对,配对成功后,Windows发送的HID数据会通过蓝牙传输至Android,被系统识别为正常输入事件。
    • 注意:部分Android设备需在蓝牙设置中开启“允许蓝牙设备控制输入”权限。

ADB间接发送输入事件(快速测试用)

  • 这并非直接发送HID数据包,但操作简单,适合快速验证:
    • 确保Android设备开启USB调试并连接Windows电脑,ADB环境正常。
    • 发送键盘事件:adb shell input keyevent <键码>,例如adb shell input keyevent 66对应回车键。
    • 发送鼠标事件:adb shell input tap <x坐标> <y坐标>模拟点击,adb shell input swipe <x1> <y1> <x2> <y2>模拟滑动,adb shell input mouse move <dx> <dy>模拟鼠标移动。

HID数据包格式

标准键盘数据包

通用键盘HID报告为8字节,各字节作用如下:

  • 第1字节:Modifier键位(Bit0=左Ctrl,Bit1=左Shift,Bit2=左Alt,Bit3=左Win,Bit4=右Ctrl,Bit5=右Shift,Bit6=右Alt,Bit7=右Win)
  • 第2字节:预留位,通常填0
  • 第3-8字节:最多6个按键的键码,未按下的键填0

示例:发送左Shift+A的数据包

0x02 0x00 0x04 0x00 0x00 0x00 0x00 0x00

解释:0x02对应左Shift的Modifier位,0x04是A键的HID标准键码。

标准鼠标数据包

通用鼠标HID报告为3字节,各字节作用如下:

  • 第1字节:按键状态(Bit0=左键,Bit1=右键,Bit2=中键,Bit3-7预留)
  • 第2字节:X轴位移,范围-128到127,负数表示向左移动,正数表示向右移动
  • 第3字节:Y轴位移,范围-128到127,负数表示向上移动,正数表示向下移动

示例1:左键按下,鼠标向右移10、向下移5的数据包

0x01 0x0A 0x05

示例2:仅鼠标向右移动20的数据包

0x00 0x14 0x00

内容的提问来源于stack exchange,提问作者confusious retadus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 11:42:23