aardio 文档

aardio 范例: 安卓手机扫码配对,无线调试

//扫码配对
import win.ui;
/*DSG{{*/
var winform = win.form(text="安卓手机扫码配对,无线调试";right=564;bottom=593;bgcolor=16777215)
winform.add(
button={cls="button";text="连接到 ...";left=299;top=542;right=530;bottom=575;db=1;disabled=1;dr=1;z=5};
edit={cls="edit";left=19;top=411;right=544;bottom=535;db=1;dl=1;dr=1;edge=1;hscroll=1;multiline=1;vscroll=1;z=2};
editPort={cls="edit";left=158;top=546;right=274;bottom=573;db=1;dr=1;edge=1;num=1;z=3};
plus={cls="plus";left=19;top=22;right=544;bottom=400;db=1;dl=1;dr=1;dt=1;repeat="scale";z=1};
static={cls="static";text="请输入连接端口:";left=9;top=550;right=139;bottom=574;align="right";db=1;dr=1;transparent=1;z=4}
)
/*}}*/

/*
adb 文档: http://developer.android.com/tools/help/adb.html
process.adb.startServer 启动 adb 服务端,这个函数实际上会自动调用一次,
adb 需要一个常驻服务端(启动一个 adb.exe 进程),也只能有一个服务进程,多个会工作不正常。
这个扩展库会自动查找之前启动的 adb 服务端,如果找到就直接重用。
进程退出时不会退出常驻服务端(一般无此必要)

每次发送 adb 指令时也会启动一个 adb 客户端,这也是一个 adb.exe 进程。
所有 adb 客户端在执行完成后,或当前进程退出后将会自动关闭(由 process.job.limitKill 实现)。
*/
import process.adb;
winform.button.oncommand = function(id,event){

    var str = process.adb.connect(owner.adbInfo.addr + ":" + winform.editPort.text,true);
    if(str){
        winform.msgbox(str)

        //执行 shell 命令
        var adb = process.adb.shell("ls"); 
        var out = adb.readAll(); //读取进程输出,adb 是一个 process.popen 对象,请参考该库函数文档。
        winform.edit.print(out);

        //上传文件
        //process.adb.push( "/abc.txt","/mnt/sdcard/abc.text" ); 
    } 
    else {
        winform.msgboxErr("连接失败,请输入正确端口")
    }
}

winform.onAdbPair = function(info){
    if(info){
        winform.edit.print("配对成功:",info);
        winform.button.text = "连接到:" + info.addr;
        winform.button.adbInfo = info;
        winform.button.disabled = false;
    }

    return true;//返回 false 停止此二维码的自动配对
}

import process.adb.qrCode;
var qrBmp = process.adb.qrCode(winform );
winform.plus.setBackground(qrBmp.copyBitmap(winform.plus.width));

winform.edit.text = /*
手机与电脑连接到同一无线局域网,
然后打开安卓手机 > 设置 > 开发者选项 > 无线调试 > 扫二维码配对
*/

winform.show() 
win.loopMessage();

Markdown 格式