# 打印

在输入窗口和控制台输出一段信息

# 打印一段文本

    print("HellWorld 节点精灵") --打印一段文本
1

# 打印一个table

    local a = {"1",2}
    print(a) --打印一个table 会将a 格式化为json 后输出
1
2

# 用指定颜色打印文本

目前该方法只会影响手机 log框中的颜色。 (!编辑器的输入窗口不解析颜色)

    print("我会变色哦","#19C989") --打印一段文本,指定这段文本为 "#19C989" 色(rgb颜色,可以用取色器获取)
1

# 睡眠

让程序暂停一段时间

    sleep(1000) --单位毫秒
1

# 获取系统时间

获取系统 时间戳 毫秒值

   local t = time() --获取 毫秒时间戳
1

# 吐司提示

在界面上提示一段文字

   toast("要显示的文本")
1

   -- 显示5秒
   toast("要显示的文本",5000)
1
2

   -- 显示5秒,并且 在 x=100, y =100 的位置显示
   toast("要显示的文本",5000,100,100)
1
2
   -- 显示5秒,并且 在 x 方向居中,y 方向居中的位置显示
   toast("要显示的文本",5000,-2,-2)
1
2

# 启动应用

在设备上显示控制台

   -- 参数为 App应用包名(可在节点精灵设置里查找)
   -- 启动 节点精灵
   runApp("com.freespace.aplug")
1
2
3

# 用默认浏览器打开网页

在设备上显示控制台

   -- 参数为 App应用包名(可在节点精灵设置里查找)
   -- 用默认浏览器打开百度地址
   runWeb("http://www.baidu.com");
1
2
3

# 语音播报

将一段文本朗读出来

   -- 朗读 生硬
   talk("我是系统朗读的声音")
1
2

# 震动

让设备震动一段时间

-- 震动2秒
vibrate(2*1000)
-- 脚本停止后会自动停止震动
-- 因此 震动开启后,可在适当情况下加sleep睡眠函数,别让程序那么早停止。
sleep(2000)
1
2
3
4
5

# 播放音频

让设备播放音频文件

-- 播放和mian.lua 文件同级下的 1.mp3 文件
local path = getDir()..'/1.mp3';
playAudio(path);
-- 脚本结束后会自动停止播放
sleep(5000);
1
2
3
4
5

# 获取屏幕分辨率

s = getScreen();
if s then 
    --横竖屏切换后,宽高自动转换
    print(s.width);-- 屏幕宽度
    print(s.height)-- 屏幕高度
end
1
2
3
4
5
6

# 强制停止脚本

exit();
1

# 获取手机唯一id

pid = getPhoneId();
print(pid);
1
2

# 获取手机信息

msg = getPhoneMsg();
print(msg.brand);--品牌
print(msg.model);--型号
print(msg.sdk) --android sdk版本
print(msg.version) --版本号
1
2
3
4
5

# 获取App 信息

-- 通过包名查看应用信息
a = getAppinfo('com.freespace.aplug')
print(a.versionCode); -- 版本号
print(a.versionName); -- 版本名称
print(a.name); -- 应用名称

1
2
3
4
5
6

# 执行 Root指令(需Root)

Root 指令,可运行 ADB 指令

    exec("...") -- 应用包名 可用节点精灵App查看
1

exec 指令回返回一个table {"error":[],"result":[],"data":"..."}

  • error: 如果执行命令有误,则再此字段中返回
  • result: 如果执行命令有返回结果,则在此字段中返回
  • data:执行的命令语句

# 强制停止应用

    exec("am force-stop 应用包名") -- 应用包名 可用节点精灵App查看
1

# 强制修改设备分辨率

    exec("wm size 720x720") -- 强改分辨率 为 720*720
1

# 恢复设备分辨率

    exec("wm size reset") -- 恢复分辨率至原厂
1

# 强制修改 屏幕密度(dpi)

    exec("wm density 160") -- 修改屏幕密度为160dp
1

# 恢复屏幕密度(dpi)

    exec("wm density reset"); -- 恢复屏幕密度
1

# 重启设备

    exec('reboot'); -- 重启设备
1

# 清除 指定包名所属应用的缓存

    local pk = "com.aojoy.aplug";
    exec('pm clear '..pk); -- 清空指定应用的缓存
1
2

# 下载并静默安装应用

function rootInstall(uri)
    if string.find(uri, "http", 1)==1 then
        path = "sdcard/1001/"..time()..'.apk' -- path 为要下载的目录
        isSuccess = httpDownload(path,uri);
        if isSuccess then
            return exec('pm install -r '..path)
        end
    end
    return nil;
end
rootInstall("apk的http下载地址");
-- 成功后会返回指令结果,安装失败会返回nil
1
2
3
4
5
6
7
8
9
10
11
12

# 卸载APP(静默卸载)

    local pk = "com.aojoy.aplug";
    exec('pm uninstall '..pk)  -- pk为指定的包名
1
2

# 修改android_id

    -- 这是一个生成随机码的方法a-z+0-9
    function Rnd_Number_And_Letter(num)
        local key='abcdefghijklmnopqrstuvwxyz0123456789'
        local str=""
        local x = 1
        for i=1,num,1 do
            x = math.random(1,36)
            str = str..string.sub(key, x, x)
        end
        return str
    end
    local nid = Rnd_Number_And_Letter(16); --生成16位随机码
    exec('settings put secure android_id '..nid)  -- pk为指定的包名
1
2
3
4
5
6
7
8
9
10
11
12
13

# 获取android_id

    local res = exec('content query --uri content://settings/secure --where "name=\'android_id\'"');
    print(res);
1
2

# 更多指令

请 百度搜索"adb 指令"



# 意图 Intent

增加intent 意图跳转 可通过意图跳转至任一界面 例:权限界面 例:抖音指定界面 例:用浏览器下载文件 例:拨打电话 例:进入通讯录 例:播放多媒体指定文件 例:打开地图,显示经纬度

# 意图构建

意图 为一个table intent = {}; 其中包含 action,uri,packageName,data,extra (可组合使用)

i ={};

-- android 配置的action 选项, 通常和uri 配合使用
i['action'] = "android.intent.action.VIEW";

-- uri 通常用作协议跳转
i['uri'] = "http://www.baidu.com";

-- data 额外增加的数据
i['data'] ="";

-- packageName 通常指 要跳转的包名
i['packageName'] = "";

-- classname 通常指 具体要跳转的activity
i['classname'] = "";

-- category 指定当前动作(Action)被执行的环境
i['category'] = {"CATEGORY_DEFAULT","..."};
-- CATEGORY_DEFAULT:Android系统中默认的执行方式,按照普通Activity的执行方式执行。表示所有intent都可以激活它   

-- CATEGORY_HOME:设置该组件为Home Activity。  

-- CATEGORY_PREFERENCE:设置该组件为Preference。   

-- CATEGORY_LAUNCHER:设置该组件为在当前应用程序启动器中优先级最高的Activity,通常为入口ACTION_MAIN配合使用。   

-- CATEGORY_BROWSABLE:设置该组件可以使用浏览器启动。表示该activity只能用来浏览网页。   

-- CATEGORY_GADGET:设置该组件可以内嵌到另外的Activity中。  

-- extra 为额外增加的 参数:具体使用请百度(该部分涉及到Android intent 知识)
i['extra'] = {};
i['extra']["test"] = true;
i['extra']["test2"] = "2";
i['extra']["test3"] = 3;

runIntent(i);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38

# 意图插件

感谢作者 暂无-

# 发送邮件

可发送邮件 往任意邮箱

maii = {
    smtp = "smtp.qq.com",
    port = "465",
    from = "xxxxx@qq.com",
    password = "qpglnpwkuaaebibe",
    to = {"xxxx@163.com"},
    subject = "MailSender",
    content = "MailSender Android快速实现发送邮件77777",
    files = {'sdcard/history.s'}
}

sendMail(maii)

1
2
3
4
5
6
7
8
9
10
11
12
13
  • smtp "可前往对应的邮箱 查看配置的smtp 服务器地址"
  • port 在对应邮箱配置查看
  • form 使用的发送邮件账号
  • password 邮箱授权码!(不是密码!) QQ邮箱授权码获取:https://jingyan.baidu.com/article/6079ad0eb14aaa28fe86db5a.html
  • to 要发送邮件到哪个邮箱
  • subject 邮件标题,title
  • content 邮件内容
  • files 附件文件 多个请用数组形式传递

# 强制刷新节点

refreshLayout()

1
2

部分手机,某些界面节点不刷新,可使用该方法强制刷新节点

# 获取已安装App信息

getApps() 通过该方法可以获取到设备上安装的所有App的信息

local apps =  getApps();

for k,v in pairs(apps) do
    print(v.appName) -- app 名称
    print(v.appSize) -- app 大小
    print(v.isSystem) -- 是否为系统App
    print(v.appPackageName) -- app 包名
    print('-----------------------------')
end

1
2
3
4
5
6
7
8
9
10

# 获取本地ip地址


    local ip = getLocalIp();
    print(ip)

1
2
3
4

# 保存图片至相册

-- 将一个网络图片保存至系统相册
保存后相册地址 = picture2Gallery("http://www.nspirit.cn/hero.png");
print(保存后相册地址);

-- 将一个本地图片保存在相册
local picAddress = getDirSD().."/123.jpg"; 
保存后相册地址 = picture2Gallery(picAddress);
print(保存后相册地址);
1
2
3
4
5
6
7
8

# 重启脚本

调用此方法后,辅助会一秒后会重启。

   reStart();
1