AIGameAIGame
首页
API文档
UI框架
下载软件
首页
API文档
UI框架
下载软件
  • API文档

    • $global - 全局函数
    • $act - 手势动作
      • 01.手势动作 - $act
      • 02.节点选择器 - UiSelector
      • 03.节点 - Node
    • $ag - 图色框架
    • $app - 应用操作
    • $arc - 悬浮菜单按钮
      • 01.悬浮菜单 - $arc
      • 02.悬浮容器 - MenuBody
      • 03.菜单按钮 - MenuItem
    • $bus - 消息总线
    • $color - 颜色操作
    • $crypt - 加密算法
    • $date - 日期工具
    • $device - 设备信息
    • $ext - dex,jar,so文件加载
    • $draw - 全局绘制
    • $engine - 脚本引擎
      • 01.任务信息 - JsTaskInfo
      • 02.脚本对象 - $task
    • $fc - 文件选择器
    • $file - 文件操作
    • $floaty - 悬浮窗
      • 01.可调节悬浮窗 - AdjFloaty
      • 02.系统级悬浮窗 - SysFloaty
      • 03.应用级悬浮窗 - AppFloaty
    • $img - 图片操作
    • $log - 日志框架
    • $ocr - 文字识别
    • $permit - 权限工具
    • $qr - 二维码工具
    • $res - 资源管理器
    • $root - ROOT与Shell命令
    • $screen - 屏幕操作
    • $storage - 应用内存储
    • $str - 字符串工具类
    • $sys - 系统操作
    • $thread - 并发编程
    • $tip - 对话框
    • $tts - 文字阅读
    • $yolo - 目标检测
    • $yolox - 目标检测

$app

  • 更新时间:2025-08-22 08:48:38

应用操作

这里包含了一写常用的应用操作、意图操作、或者一些拓展操作:发送短信等等。

getIcon(name)

获取应用图标

  • 参数 : name {string} 应用名称或包名
  • 返回 : {Image} 图标
  • 版本 : 1.0.0
//获取悬浮窗权限
$floaty.getPermit();
//获取图标
let icon = $app.getIcon("QQ");//应用名称或者包名
//显示图片
$img.show(icon);//(需要用悬浮窗权限) 也可以直接调用 icon.show(); //icon是{Image}类对象,因此可以世界调用show()方法。

runApp(appName)

运行应用

  • 参数 : appName {String} 应用名
  • 返回 : {boolean} 是否运行成功
  • 版本 : 1.0.0
$app.runApp("QQ");//应用名

launchApp(appName)

运行应用

这个函数的效果和$app.runApp("应用");相同

  • 参数 : appName {String} 应用名称
  • 返回 : {boolean} 是否运行成功
  • 版本 : 1.0.0
$app.launchApp("QQ");//应用名

launch(appName)

运行应用

这个函数的效果和$app.runApp("应用");相同

  • 参数 : appName {String} 应用名称
  • 返回 : {boolean} 是否运行成功
  • 版本 : 1.0.0
$app.launch("QQ");//应用名或包名

launchPkg(packageName)

运行包名

此函数和$app.runPkg("包名");效果相同

  • 参数 : packageName {String} 程序包名
  • 返回 : {boolean} 是否跳转成功
  • 版本 : 1.0.0
$app.launchPkg("com.tencent.mobileqq");//传入包名

runPkg(packageName)

运行包名

  • 参数 : packageName {String} 程序包名
  • 返回 : {boolean} 是否跳转成功
  • 版本 : 1.0.0
$app.runPkg("com.tencent.mobileqq");//传入包名

run(name)

打开应用(推荐)

最简洁的启动应用函数,推荐使用

  • 参数 : name {string} 包名或程序名称
  • 返回 : {boolean} 是否打开成功
  • 版本 : 1.0.0
$app.run("QQ");//可传入包名或者应用名

ls()

获得应用列表

  • 返回 : {AppInfo[]} 应用信息列表
  • 版本 : 1.0.0
//获得所有应用信息
let apps = $app.ls();//返回一个AppInfo的列表
//打印所应用信息
for(let i = 0 ; i < apps.size() ; i++){
    let appInfo = apps.get(i);//获得{AppInfo}对象(注意{AppInfo}是由本平台封装的对象)
    //一些常用属性
    let appName = appInfo.appName;//应用名称{string}
    let pkgName = appInfo.pkgName;//包名{string}
    let icon = appInfo.icon;//图标{Image} 可以直接调用 icon.show(); 显示出来(注意{Image}是由本平台封装的对象)
    let info = appInfo.info;//安卓原生应用信息{android.content.pm.ApplicationInfo}
    //{ApplicationInfo}常用属性(安卓自带的对象)
    let sourceDir = info.sourceDir; // {string}应用APK文件的路径
    let className = info.className; // {string}应用的主Application类名
    let packageName = info.packageName; // {string}应用的包名
    let componentFactory = info.appComponentFactory; // {string}应用组件工厂类,用于创建Activity、Service等组件
    let sdkVersion = info.compileSdkVersion; // {int}应用编译时使用的SDK版本号
    let sdkName = info.compileSdkVersionCodename; // {string}应用编译时使用的SDK版本代号,如"Q"、"R"等
    let dataDir = info.dataDir; // {string}应用的数据目录,一般为/data/data/包名
    let dpDataDir = info.deviceProtectedDataDir; // {string}设备受保护存储中的应用数据目录
}

lsUserApp()

获得用户应用列表

  • 返回 : {AppInfo[]} 应用列表
  • 版本 : 1.3.2
//获得用户应用列表
let apps = $app.lsUserApp();
//打印所应用信息
for(let i = 0 ; i < apps.size() ; i++){
    log(apps.get(i));
}

lsSysApp()

获得系统应用列表

  • 返回 : {AppInfo[]} 应用列表
  • 版本 : 1.3.2
//获得系统应用列表
let apps = $app.lsSysApp();
//打印所应用信息
for(let i = 0 ; i < apps.size() ; i++){
    log(apps.get(i));
}

lsRecent()

获得最近运行的应用

  • 返回 : {AppTaskInfo[]} 应用信息列表
  • 版本 : 1.0.1
//获得最进运行的应用(需要用到查询应用使用情况的权限)
if ($app.hasUsagePermit()) {
    let pkgList = $app.lsRecent();
    if (pkgList !== null) {
        for (let i = 0; i < pkgList.size(); i++) {
            let taskInfo = pkgList.get(i);//获得{AppTaskInfo}对象(由本平台封装的对象)
            //常用属性:
            let appName = taskInfo.appName;//{string}应用名称
            let pkgName = taskInfo.pkgName;//{string}包名
            let lastUseTime = taskInfo.lastUseTime;//{string}最后使用时间 对lastUsedTime进行格式化日期的字符串
            let lastUsedTime = taskInfo.lastUsedTime;//{long}最后使用时间
            let info = taskInfo.info;//{android.content.pm.ApplicationInfo}应用信息
        }
    }
} else {
    //获取查询应用使用情况的权限
    $app.getUsagePermit();
}

startActivity(name)

打开AIGame中的界面

  • 参数 : name {string} 界面名称
//打开设置界面
$app.startActivity("set");//推荐写法
$app.startActivity("settings");//兼容auto.js写法
//打开日志界面
$app.startActivity("log");//推荐写法
$app.startActivity("console");//兼容auto.js写法

startActivity(name, activityName)

启动活动

  • 参数 : name {String} 包名或应用名
  • 参数 : activityName {String} activity地址
  • 返回 : {boolean} 是否跳转成功
  • 版本 : 1.0.0
//打开QQ
$app.startActivity("QQ","com.tencent.mobileqq.activity.SplashActivity");

pkgExists(pkgName)

包名是否存在

  • 参数 : pkgName {String} 包名
  • 返回 : {boolean} 是否存在
  • 版本 : 1.0.0
let pkg = "org.aigame.pro";
if ($app.pkgExists(pkg)) {
    alert(pkg,"存在");
} else {
    alert(pkg,"不存在");
}

getPackageName(appName)

获得包名名称

效果和$app.pkgName("QQ");相同

  • 参数 : appName {String} app名称
  • 返回 : {String} 包名
  • 版本 : 1.0.0
//获得包名
let pkg = $app.getPackageName("QQ");
alert("应用包名",pkg);

pkgName(appName)

获得包名名称

  • 参数 : appName {String} app名称
  • 返回 : {String} 包名
  • 版本 : 1.0.0
//获得包名
let pkg = $app.pkgName("QQ");
alert("应用包名",pkg);

appName(packageName)

根据包名拿应用名

  • 参数 : packageName {String} 包名
  • 返回 : {String} app名称
  • 版本 : 1.0.0
//获得应用名
let appName = $app.appName("com.android.settings");
alert("应用名称",appName);//设置

installApk(apkPath)

安装apk文件

此函数会获取系统的安装意图,然后尝试安装apk文件,前提是apk文件必须存在

  • 参数 : apkPath {string} 路径(支持相对路径)
  • 返回 : {boolean} 是否成功获取安装意图
  • 版本 : 1.3.3
//安装本地apk文件
$app.installApk("./apk/qq.apk");

uninstallApp(name)

卸载应用

  • 参数 : name {string} 应用名称
  • 版本 : 1.0.0
//此函数部分手机不支持
//卸载QQ
$app.uninstallApp("QQ");

uninstallPkg(name)

卸载包名

部分手机不支持

  • 参数 : name {string} 应用名称或包名
  • 版本 : 1.0.0
//此函数部分手机不支持
//卸载QQ
$app.uninstallPkg("com.tencent.mobileqq");

uninstall(name)

卸载

  • 参数 : name {string} 应用名称或包名
  • 版本 : 1.0.0
//此函数部分手机不支持
//卸载QQ
$app.uninstall("QQ");//应用名或包名

openUrl(url)

打开网页

如果传入的网址不是以"http"开头的,则默认追加"http://"到连接前面

  • 参数 : url {string} 网页链接
  • 版本 : 1.0.0
//打开网址
let myUrl = "www.baidu.com";
$app.openUrl(myUrl);//http://www.baidu.com

shareImg(imgPath)

分享图片

  • 参数 : imgPath {string} 图片路径
  • 版本 : 1.0.0
//分享本地图片
let path = "/sdcard/Pictures/t01.png";
$app.shareImg(path);

shareText(content)

分享文本

  • 参数 : content {string} 内容
  • 版本 : 1.0.0
//分享文本
let text = "你好";
$app.shareText(text);

sendSms(phone, message)

发送短信

跳转到发送短信的界面

  • 参数 : phone {string} 电话号码
  • 参数 : message {string} 短信内容
  • 版本 : 1.0.0
$app.sendSms("13593749477","你好我是xxx");

call(phoneNumber)

拨打电话

如果拥有电话权限会直接拨通电话

  • 参数 : phoneNumber {string} 电话号码
  • 版本 : 1.0.0
$app.call("13593749477");

sendMail(mail, title, content)

发送邮件

需要手机有自带的邮箱功能或应用

  • 参数 : mail {string} 收件邮箱
  • 参数 : title {string} 标题
  • 参数 : content {string} 内容
  • 返回 : {boolean} 是否发送成功
  • 版本 : 1.0.0
$app.sendMail("3502037911@qq.com","标题","内容");

openAppSetting(name)

打开应用设置

和$app.appSetting("AIGame Pro");效果相同

会打开应用详情设置界面

  • 参数 : name {string} 应用名称或包名
  • 返回 : {boolean} 是否打开成功
  • 版本 : 1.0.0
//前往权限设置界面
$app.openAppSetting("AIGame Pro");

appSetting(name)

打开应用设置

会打开应用详情设置界面

  • 参数 : name {string} 应用名称或包名
  • 返回 : {boolean} 是否打开成功
  • 版本 : 1.0.0
//前往权限设置界面
$app.appSetting("AIGame Pro");

viewFile(path)

查看文件

  • 参数 : path {string} 文件路径
  • 返回 : {boolean} 是否打开成功
  • 版本 : 1.0.0
//打开文件
$app.viewFile("/sdcard/Pictures/test.text");

editFile(path)

编辑文件

  • 参数 : path {string} 文件路径
  • 返回 : {boolean} 是否打开成功
  • 版本 : 1.0.0
//编辑文件
$app.editFile("/sdcard/Pictures/test.text");

hasUsagePermit()

是否有使用情况权限

  • 返回 : {boolean} 是否有使用情况权限
  • 版本 : 1.0.1
$app.hasUsagePermit();

getUsagePermit()

获取使用情况权限

  • 返回 : {boolean} 是否打开成功
  • 版本 : 1.0.1
$app.getUsagePermit();

intent(options)

创建意图

  • 参数 : options {Object} 配置参数
  • 返回 : {Intent} 意图
  • 版本 : 1.0.1
//写必要的参数
let options = {
    action: "android.intent.action.VIEW",//只写VIEW也可以(自动追加前缀:"android.intent.action.")
    data: "https://www.baidu.com",//数据内容
    pkg: "com.baidu.BaiduMap",//包名
    type: "text/plain",//数据类型
    flags: ["FLAG_ACTIVITY_NEW_TASK","..."],//标志
    component: {
        cls: "org.aigame.pro.ActivityMain",
        pkg: "org.aigame.pro"
    },//组件
    categories: ["CATEGORY_DEFAULT","..."],//类别
    extras:[{
        name:"",
        value:""
    },{
        name:"",
        value:""
    }]//额外内容
}
//创建意图
let intent = $app.intent(options);

sendBroadcast(intent)

发送异步广播

  • 参数 : intent {Intent} 意图
  • 版本 : 1.0.1

sendBroadcast(intent, permis)

发送异步广播(含权限)

  • 参数 : intent {Intent} 意图
  • 参数 : permis {string} 权限
  • 版本 : 1.0.1

sendOrderedBroadcast(intent, permis)

发送同步广播

  • 参数 : intent {Intent} 意图
  • 参数 : permis {string} 权限
  • 版本 : 1.0.1

startActivity(intent)

用意图启动Activity

  • 参数 : intent {Intent} 意图
  • 版本 : 1.0.1

startActivity(options)

启动Activity

  • 参数 : options {Object} 意图配置
  • 版本 : 1.1.1

getForeApps()

获取前台应用

此方法只在低版本安卓中有明显效果,建议使用 $root.lsRunningApps((pkg)=>{}); 来获取前台应用

  • 返回 : {String[]} 前台应用包名列表
  • 版本 : 1.0.4

kill(name)

杀死应用

如果有root权限,优先使用root权限来杀死应用,如果有shizuku则使用shizuku来杀死应用

在低版本的安卓中,直接就可以通过活动管理器杀死应用,但是在较高版本的安卓中(安卓9+)很可能无法直接杀死应用进程。

  • 参数 : name {string} 应用名或包名
  • 版本 : 1.0.4
//结束应用
$app.kill("QQ");

sendMms(phone, title, message, imgPath)

发送彩信

  • 参数 : phone {string} 电话号码
  • 参数 : title {string} 主题(可为null)
  • 参数 : message {string} 短信内容
  • 参数 : imgPath {string} 图片全路径(无法支持相对路径)
  • 版本 : 1.4.9
//发送彩信
$app.sendMms("13800000000", "测试彩信", "这是一条彩信", "/sdcard/DCIM/100ANDRO/IMG_20230801_100000.jpg");
最近更新: 2025/5/14 08:43
Contributors: 孑小白
Prev
$ag - 图色框架
Next
$arc - 悬浮菜单按钮