您好,欢迎来到华佗小知识。
搜索
您的当前位置:首页使用超低成本蓝牙hid实现自动化测试、rpa、自动化脚本等

使用超低成本蓝牙hid实现自动化测试、rpa、自动化脚本等

来源:华佗小知识

在做自动化脚本中,很多app都会自动检测是否开启手机调试模式,是否root,甚至有的还会检测是否开启了无障碍。今天给大家介绍一种不需开启debug模式,不需root,不需开启无障碍的自动化脚本方案。

一、蓝牙HID实现自动化脚本的原理

蓝牙hid的原理比较简单,简单来说就是用一个蓝牙硬件来模拟鼠标和键盘,这个蓝牙硬件相当于是一个集成了鼠标和键盘的外置硬件(类比我们的蓝牙鼠标),但实际并没有鼠标滑轮和键盘。这个蓝牙硬件和手机通信,手机上的自动化脚本会发送指令给蓝牙硬件,让蓝牙硬件来执行点击和按键等操作。

二、实现过程

注册冰狐智能辅助账号

由于冰狐智能辅助可以直接支持各种蓝牙HID,不需要额外安装其他app,所以我们使用冰狐智能辅助来写蓝牙HID的脚本,使用的是js,所以需要先去冰狐官网注册一个账号才能写后续的代码。

查看蓝牙HID开发文档

冰狐的蓝牙HID文档非常简单,就三个函数、、,有一点要注意,冰狐提供的是通用蓝牙通信接口,可以和任意蓝牙硬件对接。在发送数据时发送的是字符串,下一节我们将详细介绍具体如何和蓝牙硬件通信

和蓝牙硬件通信

可以直接实现点击,滑动,back,home,找图,文字识别等等很多功能。废话不多说,直接给出可以运行的js代码如下:


function main() {
    var ble = new BleClient('fe2342e1-d234-fee3-aae4-fe2e342211dc', 'cf3432fb-d234-fee3-aae4-fe2e342211dc');
    var ret = ble.connect();
    console.log('ret:', ret)
    if (1 == ret) {
        bleHome(ble);
    }
}

function bleRelease(ble) {
    var cmd = 'v';
    console.log('cmd:' + cmd)
    var ret = ble.send(cmd)
    console.log('send ret:', ret)
}

function bleMove(ble, x, y) {
    x = parseInt(x * 10000 / rsScreenWidth);
    y = parseInt(y * 10000 / rsScreenHeight);
    var cmd = `e${x},${y}`;
    console.log('cmd:' + cmd)
    var ret = ble.send(cmd)
    console.log('send ret:', ret)
}

function bleClick(ble, x, y, duration) {
    x = parseInt(x * 10000 / rsScreenWidth);
    y = parseInt(y * 10000 / rsScreenHeight);
    if (null == duration) {
        duration = 200
    }
    var cmd = `c${x},${y},${duration}`;
    console.log('cmd:' + cmd)
    var ret = ble.send(cmd)
    console.log('send ret:', ret)
}

// curvable为1表示模拟真人曲线滑动,0表示直线滑动,默认为1.
function bleSwipe(ble, x1, y1, x2, y2, duration, curvable) {
    x1 = parseInt(x1 * 10000 / rsScreenWidth);
    y1 = parseInt(y1 * 10000 / rsScreenHeight);
    x2 = parseInt(x2 * 10000 / rsScreenWidth);
    y2 = parseInt(y2 * 10000 / rsScreenHeight);
    if (null == duration) {
        duration = 500;
    }
    if (null == curvable) {
        curvable = 1;
    }
    var cmd = `m${x1},${y1},${x2},${y2},${duration},${curvable}`;
    console.log('cmd:' + cmd)
    var ret = ble.send(cmd)
    console.log('send ret:', ret)
}

function bleSelectAll(ble) {
    var ret = ble.send('s')
    console.log('send ret:', ret)
}

function bleCopy(ble) {
    var ret = ble.send('o')
    console.log('send ret:', ret)
}

function bleCut(ble) {
    var ret = ble.send('t')
    console.log('send ret:', ret)
}

function blePaste(ble) {
    var ret = ble.send('p')
    console.log('send ret:', ret)
}

function bleHome(ble) {
    var ret = ble.send('h')
    console.log('send ret:', ret)
}

function bleBack(ble) {
    var ret = ble.send('b')
    console.log('send ret:', ret)
}

三、总结

本文介绍了一种超低成本的蓝牙HID实现自动化脚本方案,并给出了详细源码,如果大家有什么问题,可以直接在评论区和我交流,谢谢!

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务