回答
荣耀手机获取不到剪贴板内容,主要是因为 Android 10 及以上版本的安全限制。荣耀手机大多运行 Android 10+,系统禁止后台应用读取剪贴板。
解决方法
必须在调用 getClip() 前,将 Hamibot 切换到前台运行。
代码示例
// 文档地址 https://docs.hamibot.com/
// 1. 先切换到 Hamibot 应用
launchApp("Hamibot");
sleep(1000); // 等待切换完成
// 2. 在前台状态下获取剪贴板
var clipContent = getClip();
log("剪贴板内容: " + clipContent);
// 3. 获取成功后,再切换回目标应用继续操作
launchApp("微信");
sleep(1000);
// ... 后续逻辑
完整封装函数
// 文档地址 https://docs.hamibot.com/
function safeGetClip() {
var currentPackage = currentPackage();
// 如果当前不在 Hamibot,先切换过去
if (currentPackage !== "com.hamibot.hamibot") {
launchApp("Hamibot");
sleep(800);
}
// 获取剪贴板
var content = getClip();
// 切回原来的应用(可选)
if (currentPackage !== "com.hamibot.hamibot") {
launch(currentPackage);
sleep(500);
}
return content;
}
// 使用
var text = safeGetClip();
toastLog("获取到: " + text);
荣耀手机额外设置
除了代码处理,还需检查系统设置:
| 设置项 | 操作 |
|---|---|
| 后台弹出界面 | 设置 → 应用 → Hamibot → 权限 → 允许 |
| 自启动 | 设置 → 应用 → Hamibot → 自启动 → 开启 |
| 电池优化 | 设置 → 电池 → Hamibot → 不优化 |
总结:荣耀手机获取剪贴板的关键是 "Hamibot 必须在前台",脚本中需先 launchApp("Hamibot") 再调用 getClip()。
ℹ️ 内容由 AI 生成,可能不准确,请注意核实