ADB函数
说明
- Adb交互模块主要是通过无线调试方式链接adb,执行各种adb命令
- 不需要插入数据线
adbClient.connectHistory 链接历史记录
- 链接历史记录
- 适配EC 安卓 11.33.0+
- @param timeout 超时单位是毫秒
- @returns
{*|boolean}true代表链接成功 false代表失败
function testadb() {
adbClient.closeAdbConnect();
let connected = adbClient.connectHistory(10000) logd("connectHistory " + connected) if (connected) { logd("adb链接上了") let lsr = adbClient.runShell("ls -alh /sdcard/", 30000) // 重启 //adbClient.runShell("reboot",10000) logd(lsr) startEnvNow(); return; }
let scanResult = "";
if (device.getSdkInt() > 29) { scanResult = adbClient.startScan(0, 0, 60 * 1000) } else { logd("开始扫描...如果手机上有授权弹窗,请允许") scanResult = adbClient.startScan(5555, 6000, 60 * 1000) } logd("扫描结果信息: " + scanResult) if (scanResult == null || scanResult == undefined || scanResult == "") { logd("扫描没有任何信息") return; } let scr = JSON.parse(scanResult) if (scr["code"] != 0) { // 没有扫描信息 logd("扫描错误: " + scr["msg"]) return; }
logd("adb链接成功") startEnvNow();}
function startEnvNow() { if (!adbClient.isAdbConnected()) { logw("adb未链接,请重新链接") return false; } let act = adbClient.activeSelf(1, 20000) logd("自激活结果: " + act) if (act == null || act == undefined || act == "") { logd("自激活结果 没有任何信息") return false; } let act2 = JSON.parse(act) if (act2["code"] != 0) { // 没有扫描信息 logd("自激活结果错误: " + act2["msg"]) return false; } logd("启动自动化环境") let str = startEnv() logd("启动自动化环境: " + str) return str;}
function main() {
testadb();
//logd(adbClient.openNotificationPermissionPage())
}
main();adbClient.startScan 开始扫描
- 开始扫描
- 高于安卓11的,端口参数不写,走的是配对模式,开始扫描后会提示打开网络调试界面找到使用配对码配对设备,通知栏会弹出提示,输入配对码即可配对
- 低于安卓11的,填写开始端口和结束端口,会自动扫描,一般网络调试端口是5555,扫描后会提示授权允许对话框,允许即可
- 如果失败,可以多次尝试,不过建议先去app的系统设置中完成adb网络调试的配对,这样就无需调用这个函数了
- 适配EC 安卓 11.33.0+
- @param startPort 网络调试开始端口
- @param endPort 网络调试结束端口
- @param timeout 超时时间 单位毫秒
- @returns
{string}JSON字符串,code=0代表成功,data 代表返回的数据,msg代表消息
// 请看 adbClient.connectHistory 函数的例子adbClient.stopScan 停止扫描
- 停止扫描
- 适配EC 安卓 11.33.0+
- @returns
{*|boolean}true代表成功 false代表失败
// 请看 adbClient.connectHistory 函数的例子adbClient.closeAdbConnect 关闭adb连接
- 关闭adb连接
- 适配EC 安卓 11.33.0+
- @returns
{*|boolean}true代表成功 false代表失败
// 请看 adbClient.connectHistory 函数的例子adbClient.isAdbConnected adb是否链接
- adb是否链接上来了
- 适配EC 安卓 11.33.0+
- @returns
{*|boolean}true代表成功 false代表失败
// 请看 adbClient.connectHistory 函数的例子adbClient.runShell 运行shell命令
- 运行shell命令
- 适配EC 安卓 11.33.0+
- @param command 命令,例如 ls /sdcard/或者pm install /sdcard/xxx.apk 安装命令
- @param timeout 超时时间 单位是毫秒
- @returns
{string}JSON字符串,code=0代表成功,data 代表返回的数据,msg代表消息
// 请看 adbClient.connectHistory 函数的例子adbClient.activeSelf 激活自己
- 激活自己
- 适配EC 安卓 11.33.0+
- @param type 值分别是1和2 ,激活方式不同
- @param timeout 超时时间 单位是毫秒
- @returns
{string}JSON字符串,code=0代表成功,data 代表返回的数据,msg代表消息
// 请看 adbClient.connectHistory 函数的例子adbClient.openAdbWifiDebugPage 打开无线调试界面
- 打开无线调试界面
- 适配EC 安卓 11.33.0+
- @returns
{*|boolean}true 成功 false失败
function main() { // app放在前台 直接调用 let r = adbClient.openAdbWifiDebugPage(); logd(r) }
main();adbClient.openNotificationPermissionPage 打开通知栏权限界面
- 打开通知栏权限界面
- 适配EC 安卓 11.33.0+
- @returns
{*|boolean}true 成功 false失败
function main() { // app放在前台 直接调用 let r = adbClient.openNotificationPermissionPage(); logd(r) }
main();