# XHai 智能物联 - Android 客户端 基于涂鸦 **Thing Smart Home SDK 7.5.0** 原生开发的 Android 客户端。 实现:**用户登录(iotsaas 后端)+ 涂鸦账号绑定/授权**。 --- ## 一、功能范围(当前阶段) | 功能 | 状态 | 说明 | |------|------|------| | 用户登录 | ✅ | 对接 iotsaas 后端 `POST /api/v1/auth/member/login` | | 用户注册 | ✅ | 对接 `POST /api/v1/auth/member/register` | | 涂鸦账号绑定 | ✅ | 涂鸦原生 SDK 登录,绑定后同步 `tuya_user_binding` | | 涂鸦账号解绑 | ✅ | 对接 `POST /api/v1/tuya/auth/unbind` | | 绑定状态查询 | ✅ | 对接 `GET /api/v1/tuya/auth/status` | | 设备管理/控制 | ⏳ | 走通绑定后再开发 | --- ## 二、环境要求 - **Android Studio**(Hedgehog 或更新版本) - **JDK 17**(涂鸦 SDK 需要) - **Android SDK**(API 34) - **NDK**(`arm64-v8a`、`armeabi-v7a`) --- ## 三、涂鸦平台配置(必须完成) > ⚠️ **关键**:涂鸦 SDK 初始化要求 `AppKey`、`AppSecret`、**包名**、**签名 keystore 的 SHA256** 四项全部与涂鸦平台登记一致,否则报 `illegal client`。 ### 1. 确认 App 授权信息 登录 [涂鸦开发者平台](https://developer.tuya.com/cn/) → 云开发 → 你的项目 → **App 授权**: - **AppKey**(Client ID):`wuvw788psccvxndpyxnv` - **AppSecret**(Client Secret):需确认 - **包名**:`com.xhai.iot` ### 2. 配置签名证书 SHA256 涂鸦 SDK 校验应用签名。必须把**打包用 keystore 的 SHA256** 配置到涂鸦平台对应 App 的"Android 签名证书"里。 本项目已生成开发用 keystore:`app/xhai_iot.jks`(密码 `xhai123456`,alias `xhai`) - **SHA256**:`F0:D1:85:41:CD:D2:21:E2:84:77:FF:E1:A4:CF:F7:19:41:D4:8A:BD:B7:77:83:F2:C0:DB:CE:FB:69:25:F6:13` - **SHA1**(涂鸦 identifier 用):`0C44B4A0C696BC823B5BEFD52B16CFBF7D169B78` > ⚠️ **注意**:涂鸦平台"App授权"里的 identifier(SHA1+包名)必须与打包签名一致。若涂鸦后台已配置了其他 keystore 的 SHA1,请使用那个 keystore 替换 `app/xhai_iot.jks`,或在涂鸦后台更新 SHA1。 --- ## 四、构建步骤 ### 方式一:Android Studio(推荐) 1. 用 Android Studio 打开 `f:/work/iotsaas/Android` 文件夹 2. Android Studio 会自动下载 Gradle、AGP、涂鸦 SDK 依赖(需网络) 3. 等待首次 Gradle Sync 完成 4. 连接手机,点击 Run ### 方式二:命令行 ```bash cd Android gradle assembleDebug ``` --- ## 五、关键配置文件 | 文件 | 作用 | |------|------| | `app/build.gradle` | 依赖、签名、ABI 配置 | | `app/src/main/AndroidManifest.xml` | AppKey/AppSecret、Activity 注册 | | `app/src/main/java/.../data/ApiConfig.java` | 后端地址、涂鸦密钥 | | `app/src/main/java/.../TuyaApplication.java` | 涂鸦 SDK 初始化 | | `app/src/main/java/.../ui/TuyaBindActivity.java` | 涂鸦登录+绑定 | --- ## 六、API 对接(iotsaas 后端) | 后端接口 | 方法 | 作用 | |---------|------|------| | `/api/v1/auth/member/login` | POST | 登录 | | `/api/v1/auth/member/register` | POST | 注册 | | `/api/v1/tuya/auth/status` | GET | 涂鸦绑定状态 | | `/api/v1/tuya/auth/bind-native` | POST | 绑定同步 | | `/api/v1/tuya/auth/unbind` | POST | 解绑 | > 所有涂鸦接口需要 `Authorization: Bearer ` 头。 --- ## 七、常见问题 ### Q1: 启动报 `illegal client` 检查 AppKey/AppSecret/包名/keystore SHA256 四项与涂鸦平台是否一致。 ### Q2: 绑定同步失败 检查后端是否已登录(token 有效)、`tuya_user_binding` 是否写入。 ### Q3: 涂鸦登录失败 确认涂鸦账号存在、网络正常、SDK 已初始化成功。