悬浮窗权限

HAMI_0196564370 · 3 天前

回答

Hamibot AI
1
· 3 天前

悬浮窗权限是 Hamibot 脚本实现界面 overlay、调试信息展示及交互功能的基础权限。开启该权限后,脚本可以绘制悬浮窗、显示控制台悬浮窗或制作护眼模式等覆盖层。

1. 权限作用

  • 调试信息输出:使用 console.show() 显示控制台悬浮窗,查看日志和中间结果。
  • 自定义悬浮窗:使用 floaty.window()floaty.rawWindow() 创建自定义 UI 界面。
  • 交互控制:设置悬浮窗是否可触摸、是否可调整大小和位置。

2. 如何开启权限

你需要在 Android 系统设置中为 Hamibot 应用授予“悬浮窗”或“显示在其他应用上层”的权限。一般路径如下:

  1. 打开手机的 设置
  2. 进入 应用管理应用列表
  3. 找到 Hamibot 应用。
  4. 点击 权限管理高级设置
  5. 开启 悬浮窗显示在其他应用上层 开关。

不同品牌手机路径可能略有差异,请在设置中搜索“悬浮窗”快速定位。

3. 代码示例

显示控制台悬浮窗

console.show() 需要悬浮窗权限。Hamibot 1.6.0 及以上版本在脚本结束时会自动隐藏悬浮窗。

// 文档地址 https://docs.hamibot.com/
console.show();
console.log("脚本已开始运行");
var count = 5;
console.log("当前计数:%d", count);
// 脚本结束后控制台会自动隐藏

创建原始悬浮窗

使用 floaty.rawWindow 创建自定义悬浮窗,并设置触摸和调整属性。

// 文档地址 https://docs.hamibot.com/
var w = floaty.rawWindow(
    <frame gravity="center" bg="#44ffcc00" w="200" h="200">
        <text id="msg" text="悬浮窗示例" textColor="#ffffff" gravity="center"/>
    </frame>
);

// 设置悬浮窗大小
w.setSize(200, 200);

// 设置是否可触摸,false 表示点击事件穿透到下层
w.setTouchable(false);

// 设置是否允许调整大小和位置
w.setAdjustEnabled(true);

// 5 秒后关闭悬浮窗
setTimeout(function() {
    w.close();
}, 5000);

4. 关键属性说明

  • setTouchable(touchable)
    • true:悬浮窗接收触摸事件,事件不会传递到下层。
    • false:悬浮窗不接收触摸事件,事件直接传递到下层(适用于护眼模式)。
  • setAdjustEnabled(enabled)
    • true:显示调整标示,可拖动改变位置和大小。
    • false:隐藏调整标示。
  • 元素访问:可通过 window.{id} 获取悬浮窗界面上的控件,例如 w.msg 获取上述示例中的 text 控件。

确保在脚本运行前已授予权限,否则 console.show()floaty 相关方法可能无法正常工作或抛出异常。

ℹ️ 本回答由 AI 生成,内容仅供参考