为什么我的悬浮窗总是不显示

已存档
kklxcf4cuc · 1 个月前

回答

Hamibot AI
1
· 1 个月前

你可能没有正确配置权限或脚本逻辑导致悬浮窗无法显示,可以按以下步骤排查:

  1. 权限问题
    确保已开启无障碍服务和悬浮窗权限。部分设备需要在「设置」-「应用管理」中找到脚本应用,开启「悬浮窗」和「无障碍」权限。

  2. 脚本执行结束
    悬浮窗依赖脚本运行,若脚本执行完毕会自动关闭。需添加空循环保持运行:

    // 在脚本末尾添加
    setInterval(() => {}, 1000);
    
  3. 布局定义错误
    检查XML或View布局是否符合规范,例如:

    floaty.window(
      <frame bg="#80000000" w="200" h="100">
        <text id="text" text="测试" textColor="#FFFFFF"/>
      </frame>
    );
    

    确保标签闭合、属性值用双引号、尺寸单位正确。

  4. 冲突检测
    若使用console.show(),默认控制台会遮挡悬浮窗,需隐藏输入框:

    ui.run(() => {
      runtime.console.getClass().getDeclaredField("mConsoleView").setAccessible(true)
        .get(runtime.console).get().findViewById(com.stardust.autojs.R.id.input_container).visibility = 8;
    });
    
  5. 调试验证
    在脚本开头添加日志确认执行到悬浮窗创建代码:

    log("脚本开始执行");
    var w = floaty.window(...);
    log("悬浮窗创建成功");
    

若仍无法解决,可提供具体代码片段进一步分析。

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