auto.js 中文文档 下载 App

截图权限获取——Auto.js 图像识别与找图能力的前提

为什么需要单独获取

Android 5.0 之后普通应用不能直接截图,必须通过 MediaProjection API 向系统申请一次性授权。Auto.js 把这套流程封装成了 requestScreenCapture() 函数。

获取流程

在脚本首次调用图像相关 API 之前,先执行:

// 申请截图权限,返回 Promise
requestScreenCapture(false); // false = 横屏截图,true = 竖屏截图

执行后系统会弹出一个确认框「是否允许 Auto.js 录制屏幕?」,点「允许」即可。系统会记录授权,下次运行同应用的脚本时不会再弹窗。

权限有效期

实战示例

// 等无障碍就绪
auto.waitFor();

// 申请截图
if (!requestScreenCapture(false)) {
  toast("截图权限获取失败");
  exit();
}

// 截图并保存
var img = captureScreen();
files.write("/sdcard/Download/screenshot.png", images.toBytes(img));
toast("截图已保存");

常见问题

requestScreenCapture 没有弹窗

检查是否已经打包成 APK 并在设置里永久授予了截图权限。如果是 Auto.js 主应用内运行,应该每次都弹窗。如果还是没反应,尝试重启 Auto.js 应用。

截图黑屏

某些游戏和 DRM 保护的视频播放器禁止截图,这是系统级限制,无法绕过。普通 APP 界面截图正常。

截图模糊 / 尺寸不对

确保 requestScreenCapture 参数与你实际使用的方向一致(竖屏手机传 true)。部分高分辨率屏幕截图后尺寸会自动缩放,这是 Auto.js 的性能优化。