回答
Hamibot 脚本可以通过内置 API 获取设备系统信息、应用数据、文件内容及屏幕状态。获取数据需遵循权限规范,无法访问敏感隐私(如短信、通讯录、密码)。
可获取的数据类型
-
设备系统信息
使用device对象获取硬件和状态数据。device.model:设备型号。device.totalMem:总内存。device.getAvailMem():当前可用内存(字节)。device.isScreenOn():屏幕是否亮着。device.getMusicVolume():当前媒体音量。
-
应用信息
使用app对象或shell命令获取已安装应用列表及包名。getPackageName(appName):通过应用名获取包名。shell('pm list packages'):列出所有已安装包名。
-
文件数据
使用files对象读写存储卡中的文件。files.read(path):读取文本文件内容。files.exists(path):检查文件是否存在。- 需申请存储权限。
-
屏幕与界面内容
使用无障碍服务或截图获取当前界面信息。text("xxx").findOne():获取界面文本元素。images.captureScreen():截取当前屏幕图像。
代码示例
// 文档地址 https://docs.hamibot.com/
auto.waitFor();
// 1. 获取设备基本信息
var model = device.model;
var totalMem = device.totalMem;
var availMem = device.getAvailMem();
var isScreenOn = device.isScreenOn();
log("设备型号:" + model);
log("总内存:" + totalMem);
log("可用内存:" + availMem);
log("屏幕状态:" + isScreenOn);
// 2. 获取应用包名
var packageName = getPackageName("微信");
log("微信包名:" + packageName);
// 3. 读取文件示例 (需存储权限)
var path = "/sdcard/test.txt";
if (files.exists(path)) {
var content = files.read(path);
log("文件内容:" + content);
} else {
log("文件不存在");
}
// 4. 获取当前界面元素
var btn = text("确定").findOne(2000);
if (btn) {
log("找到按钮:" + btn.text());
}
权限与注意事项
-
权限申请
- 读取文件需授予「存储权限」。
- 获取界面元素需开启「无障碍服务」。
- 部分系统信息可能需要更高权限,普通脚本无法获取 IMEI、手机号等敏感标识。
-
隐私合规
- 禁止收集用户隐私数据(如通讯录、短信、账号密码)。
- 脚本上传市场时需通过安全审核,违规收集数据会被下架。
-
兼容性
- 不同 Android 版本对权限管理不同,Android 10+ 对存储访问限制更严,建议使用
app.getPath()获取应用专用目录。
- 不同 Android 版本对权限管理不同,Android 10+ 对存储访问限制更严,建议使用
如需查看完整 API 列表,请参考官方文档。
ℹ️ 内容由 AI 生成,可能不准确,请注意核实