OpenClaw 安卓设备接入指南:从零开始配置你的移动节点

最近 OpenClaw 项目热度很高,我也开始学习和探索。本文记录了我学习过程中,将 Android 设备接入 OpenClaw Gateway 的完整流程,涵盖了环境准备、应用编译、Gateway 配置及最终连接,并特别记录了针对较旧 Android 设备的适配方法。

🎯 学习目标

  • 在 Android 手机上安装并运行 OpenClaw 客户端;
  • 将手机设备接入本地 OpenClaw Gateway;

✅ 适用于个人开发、远程调试、家庭自动化场景。

🔧 准备工作

1. 环境要求

组件 版本/说明
操作系统 Linux / macOS / Windows
Java JDK JDK 21 (Windows)
Gradle 8.0+
Android SDK Tools platform-tools, build-tools
Android 手机 支持 Android 10 (API 29),已开启 USB 调试

📱 第一步:搭建 Android 开发环境

我们需要为 OpenClaw 官方 Android 应用进行编译与安装。

1. 安装 Android SDK 工具

bash 复制代码
# 使用 sdkmanager 安装必要的组件
sdkmanager "platform-tools" "build-tools;34.0.0"

2. 克隆 OpenClaw 代码仓库

bash 复制代码
git clone https://github.com/openclaw/openclaw.git
cd openclaw

进入 Android 应用目录:

bash 复制代码
cd apps/android

3. 适配旧版 Android 设备 (重要)

由于我的 Android 设备较旧,需要对源码进行关键修改以确保兼容性。

修改一:降低最低支持版本 (minSdk)

打开 apps\android\app\build.gradle.kts 文件,将 minSdk 从默认值修改为 29

kotlin 复制代码
android {
    // ...
    defaultConfig {
        applicationId = "ai.openclaw.app"
        minSdk = 29 // 修改这里,对应 Android 10
        targetSdk = 34
        versionCode = 1
        versionName = "1.0"
        // ...
    }
    // ...
}

✅ 这样做是为了兼容 Android 10 (API 29) 及更高版本的设备。

修改二:禁用动态颜色 (Dynamic Color)

打开 openclaw\apps\android\app\src\main\java\ai\openclaw\app\ui\OpenClawTheme.kt 文件,将 dynamicColor 的判断逻辑修改如下。

这个修改至关重要,因为 Android 12 (API 31) 以下的系统不支持 Material You 的动态颜色主题,会导致应用崩溃。

kotlin 复制代码
@Composable
fun OpenClawTheme(
    darkTheme: Boolean = isSystemInDarkTheme(),
    // 使用动态颜色需要 API 31+
    dynamicColor: Boolean = Build.VERSION.SDK_INT >= Build.VERSION_CODES.S,
    content: @Composable () -> Unit
) {
    val colorScheme = when {
        // 动态颜色仅支持 Android 12+
        dynamicColor && Build.VERSION.SDK_INT >= Build.VERSION_CODES.S -> {
            if (darkTheme) {
                androidx.compose.material3.dynamicDarkColorScheme(LocalContext.current)
            } else {
                androidx.compose.material3.dynamicLightColorScheme(LocalContext.current)
            }
        }

        darkTheme -> darkColorScheme()
        else -> lightColorScheme()
    }

    MaterialTheme(
        colorScheme = colorScheme,
        content = content
    )
}

✅ 通过此修改,应用将只为 Android 12 及以上系统启用动态颜色,旧系统则使用预设的主题色,保证了应用的稳定运行。

4. 编译并安装 APK

确保你的手机已开启 开发者选项USB 调试模式,并通过 USB 连接电脑。

执行以下命令编译并安装:

bash 复制代码
./gradlew :app:assembleDebug
./gradlew :app:installDebug

✅ 成功后,手机会自动安装名为 "OpenClaw" 的应用。

⚙️ 第二步:配置 OpenClaw Gateway

1. 修改 config.json

在 OpenClaw 根目录下找到 config.json 文件,添加或修改如下内容:

json 复制代码
{
  "gateway": {
    "port": 18789,
    "mode": "local",
    "bind": "lan",
    "controlUi": {
      "allowedOrigins": [
        "http://127.0.0.1:18789"
      ]
    },
    "auth": {
      "mode": "token",
      "token": "your-secret-token-here"
    },
    "nodes": {
      "denyCommands": [
        "screen.record",
        "contacts.add",
        "calendar.add",
        "reminders.add",
        "sms.send"
      ]
    }
  }
}

🔐 token 可自定义,建议使用强随机字符串(例如:openssl rand -base64 32 生成)。

🛑 denyCommands 列表可防止敏感操作被远程触发,提升安全性。

2. 启动 Gateway

bash 复制代码
npm run start

此时服务将在 http://localhost:18789 上启动,并显示连接状态页。

🔗 第三步:生成二维码并连接设备

1. 设置 OpenClaw 环境变量(可选)

如果你希望绕过 TLS 验证(仅用于本地测试),可以设置:

bash 复制代码
set OPENCLAW_ALLOW_INSECURE_PRIVATE_WS=1

⚠️ Windows 环境 使用 set 命令设置临时环境变量。

2. 初始化并生成连接信息

首先运行设置向导,它会引导你完成基本配置:

bash 复制代码
openclaw setup

然后,根据向导结果或手动指定的 URL 和 Token,生成用于连接的二维码:

bash 复制代码
openclaw qr --url ws://YOUR_GATEWAY_IP:18789 --token your-secret-token-here

📝 请将 YOUR_GATEWAY_IP 替换为你运行 OpenClaw Gateway 的服务器或本机的实际 IP 地址。

3. 扫描二维码并授权

打开手机上的 OpenClaw App,点击"扫描二维码",扫描电脑端生成的 QR 码。

App 会提示你:

  • 授权相机、麦克风、位置等权限;
  • 点击"链接"按钮建立连接。

✅ 第四步:批准设备连接

当设备发起连接后,它会处于待审批状态。你可以通过以下命令查看待处理的连接请求:

bash 复制代码
openclaw devices

列表中会显示待批准的设备及其 requestId

执行批准命令,将 REQUEST_ID 替换为实际的请求ID:

bash 复制代码
openclaw devices approve REQUEST_ID

完成此步骤后,设备即被正式加入到你的 OpenClaw 网络中。

📊 第五步:验证连接状态

访问 Web 控制台:http://localhost:18789

你应该能看到:

  • Active endpoint : 如 192.168.96.141:18789
  • Gateway state : Connected (node offline) --- 表示设备已连接但尚未激活
  • Disconnect Gateway 按钮可用

点击 Chat 标签页,即可发送消息测试通信是否正常。

注意:需要在 Android 上授予相机权限,且设备支持前置/后置摄像头。

📚 参考资料

🚀 总结

通过以上步骤,特别是针对旧版 Android 设备的关键代码修改,我成功地将一台 Android 10 设备接入了 OpenClaw 系统。

注意:本文只记录了如何完成设备的基本接入,至于接入后能用它来做什么、怎么深入玩转,我还在继续学习中。

📌 关键词:OpenClaw, Android, 远程控制, 设备接入, 二维码连接, gateway, 摄像头, 安全认证, 低版本适配

如果你也在学习 OpenClaw,希望这篇记录对你有所帮助。

相关推荐
禹笑笑-AI食用指南2 小时前
分享一个 OpenClaw 协同平台+CLI+工具调用思路+实战!
人工智能·ai·openclaw·龙虾
PPHT-H11 小时前
【人工智能笔记】第四十四节:OpenClaw封神工具 openclaw-free-openai-proxy 免费AI模型批量调用,零token费+稳到不翻车!
人工智能·深度学习·openclaw·免费openai·ai服务代理
RDCJM12 小时前
【MySQL】在MySQL中STR_TO_DATE()以及其他用于日期和时间的转换
android·数据库·mysql
冬奇Lab13 小时前
AudioFlinger架构基础:Android音频系统的心脏
android·音视频开发·源码阅读
铁手飞鹰14 小时前
Visual Studio创建Cmake工程导出DLL,通过Python调用DLL
android·python·visual studio
arvin_xiaoting16 小时前
常驻Agent vs无状态Agent:多渠道AI架构的两条路
人工智能·ai agent·claude code·openclaw
Tadas-Gao17 小时前
权力的游戏:当AI龙虾获得Root权限
人工智能·架构·系统架构·大模型·llm·openclaw
大数据AI人工智能培训专家培训讲师叶梓18 小时前
人工智能培训讲师叶梓:OpenClaw龙虾 AI 安装教程(2026 最新・全平台)
教程·人工智能讲师·大模型讲师·openclaw·openclaw 安装·openclaw培训·openclaw讲师
Relly-Lee18 小时前
OpenClaw本地部署及接入飞书
飞书·openclaw