关于process.adb.defaultArguments使用
aardio吧
全部回复
仅看楼主
level 2
新人求解,
原本使用批处理操作adb进行一些测试项目, 发现接上多个设备以后就不太好操作了, 借助aardio想实现操作多个adb设备, 结果发现序列号又重复了, 可以使用"adb -s serial_number -t transport_id shell ls"来实现, 现在挡在process.adb.defaultArguments, 想把序列号和transport_id增加到默认的操作参数里面, 用以下代码总是出错, 不知道哪里的问题, 感谢帮忙批评指正,
源代码如下,
import win.ui;
import process.adb;
/*DSG{{*/
winform = win.form(text="Adbtools";right=554;bottom=479)
winform.add(
check={cls="button";text="AutoTest(S)";left=396;top=23;right=509;bottom=60;z=1};
edit={cls="edit";left=40;top=81;right=511;bottom=451;edge=1;hscroll=1;multiline=1;vscroll=1;z=3};
listbox={cls="listbox";left=40;top=21;right=374;bottom=62;edge=1;items={};z=2}
)
/*}}*/
winform.check.oncommand = function(id,event){
SN=process.adb.getDevices();
log_out(#SN++"台设备连接PC了!");
//没有设备连接的提示信息
if( #SN==0){
winform.listbox.clear() //先清除
log_out("请选连接安卓手机,并打开设置->开发者选项->USB调试模式" )
winform.listbox.add("请连接设备")
}
else
{
winform.edit.clear(); //清除原有内容
log_out(SN);
/* 多台设备读取到的信息如下,
{
[1]={state="device";serialNo="0123456789ABCDEF";info={device="CX311";transport_id="17";model="CX311";product="CX311"}};
[2]={state="device";serialNo="0123456789ABCDEF";info={device="Cx311";transport_id="16";model="CX311";product="CX311"}}
}
*/
for (i=1;#SN;1){
winform.listbox.add(SN[i].serialNo++"-"++SN[i].info.transport_id); //添加读到的SN号码及transportID
tab={
{s="-s "};
{serial=SN[i].serialNo};
{t="-t"};
{tid=SN[i].info.transport_id}
}
process.adb.defaultArguments(tab); //这一句会报错,不知道原因在哪里
process.adb.keyPower(); //测试一下关屏看是否可以成功
}
}
}
..log_out=function(data){
winform.edit.print(data);
}
winform.show();
return win.loopMessage();
2024年09月04日 10点09分 1
level 2
错误图片,
错误语句: process.adb.defaultArguments(tab); //这一句会报错,不知道原因在哪里
2024年09月04日 10点09分 2
level 2
已结贴,
基础不牢,地动山摇,
解决方法如下,
把这一句, process.adb.defaultArguments(tab);
更换为如下即可
process.adb.defaultArguments=tab;
2024年09月04日 17点09分 3
1