feat: publish workphone SDK deployment and API docs
This commit is contained in:
194
sdk/android-app/README.md
Normal file
194
sdk/android-app/README.md
Normal file
@@ -0,0 +1,194 @@
|
||||
# 工作手机Agent APP
|
||||
|
||||
> 安装在手机上,实现远程控制和项目绑定
|
||||
|
||||
---
|
||||
|
||||
## 功能特性
|
||||
|
||||
- ✅ **远程服务器连接** - WebSocket长连接
|
||||
- ✅ **项目绑定** - 每台手机绑定指定项目
|
||||
- ✅ **后台运行** - 前台服务保持运行
|
||||
- ✅ **开机自启** - 系统启动后自动连接
|
||||
- ✅ **断线重连** - 网络恢复后自动重连
|
||||
- ✅ **远程命令执行** - 接收服务器指令并执行
|
||||
|
||||
---
|
||||
|
||||
## 安装方式
|
||||
|
||||
### 方式1: 直接安装APK
|
||||
|
||||
1. 从Release页面下载 `WorkPhoneAgent.apk`
|
||||
2. 传输到手机并安装
|
||||
3. 允许"安装未知来源应用"权限
|
||||
|
||||
### 方式2: 源码编译
|
||||
|
||||
```bash
|
||||
# 进入项目目录
|
||||
cd sdk/android-app
|
||||
|
||||
# 使用Gradle编译
|
||||
./gradlew assembleDebug
|
||||
|
||||
# APK位置
|
||||
# app/build/outputs/apk/debug/app-debug.apk
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 使用指南
|
||||
|
||||
### 1. 首次配置
|
||||
|
||||
1. 打开APP
|
||||
2. 填写**服务器地址**: `ws://sdk.quwanzhi.com:8899/ws/device`
|
||||
3. 填写**项目ID**: 从管理后台获取
|
||||
4. 设备ID默认自动生成为奥创兼容格式:`md5(android_id)`(可自定义覆盖)
|
||||
5. 点击"连接服务器"
|
||||
|
||||
### 2. 状态说明
|
||||
|
||||
| 状态 | 说明 |
|
||||
|------|------|
|
||||
| 未连接 | 服务未启动 |
|
||||
| 正在连接... | 正在建立WebSocket连接 |
|
||||
| 已连接 | 成功连接服务器 |
|
||||
| 已断开 | 连接已断开 |
|
||||
| 连接错误 | 网络或服务器异常 |
|
||||
|
||||
### 3. 后台运行
|
||||
|
||||
- 连接成功后,服务会在后台持续运行
|
||||
- 通知栏会显示"工作手机Agent - 已连接"
|
||||
- 即使关闭APP,服务依然运行
|
||||
- 开机后自动启动并连接
|
||||
|
||||
---
|
||||
|
||||
## 服务器端配置
|
||||
|
||||
### WebSocket端点
|
||||
|
||||
服务器需要提供WebSocket端点接收设备连接:
|
||||
|
||||
```
|
||||
ws://your-server:8899/ws/device/{device_id}
|
||||
```
|
||||
|
||||
### 消息格式
|
||||
|
||||
**设备注册消息:**
|
||||
```json
|
||||
{
|
||||
"type": "register",
|
||||
"device_id": "device_001",
|
||||
"project_id": "project_xxx",
|
||||
"platform": "android",
|
||||
"model": "Redmi Note 13",
|
||||
"sdk_version": 34,
|
||||
"app_version": "1.0.0"
|
||||
}
|
||||
```
|
||||
|
||||
**心跳消息(默认30秒,可远程配置):**
|
||||
```json
|
||||
{
|
||||
"type": "heartbeat",
|
||||
"device_id": "device_001",
|
||||
"timestamp": 1706000000000
|
||||
}
|
||||
```
|
||||
|
||||
**心跳配置(服务器下发):**
|
||||
```json
|
||||
{
|
||||
"type": "config",
|
||||
"heartbeat_interval_seconds": 10
|
||||
}
|
||||
```
|
||||
|
||||
**执行命令(服务器发送):**
|
||||
```json
|
||||
{
|
||||
"type": "execute",
|
||||
"command_id": "cmd_001",
|
||||
"action": "open_app",
|
||||
"params": {
|
||||
"package": "com.tencent.mm"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
**命令结果(设备返回):**
|
||||
```json
|
||||
{
|
||||
"type": "result",
|
||||
"command_id": "cmd_001",
|
||||
"device_id": "device_001",
|
||||
"success": true,
|
||||
"message": "已打开 com.tencent.mm",
|
||||
"timestamp": 1706000001000
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 支持的命令
|
||||
|
||||
| 命令 | 参数 | 说明 |
|
||||
|------|------|------|
|
||||
| open_app | package: 包名 | 打开指定APP |
|
||||
| get_installed_apps | 无 | 获取已安装APP列表 |
|
||||
| get_device_info | 无 | 获取设备信息 |
|
||||
|
||||
---
|
||||
|
||||
## 权限说明
|
||||
|
||||
| 权限 | 用途 |
|
||||
|------|------|
|
||||
| INTERNET | 网络连接 |
|
||||
| FOREGROUND_SERVICE | 后台服务 |
|
||||
| POST_NOTIFICATIONS | 显示通知 |
|
||||
| RECEIVE_BOOT_COMPLETED | 开机自启 |
|
||||
| SYSTEM_ALERT_WINDOW | 悬浮窗(预留) |
|
||||
|
||||
---
|
||||
|
||||
## 项目结构
|
||||
|
||||
```
|
||||
android-app/
|
||||
├── app/
|
||||
│ ├── src/main/
|
||||
│ │ ├── java/com/workphone/agent/
|
||||
│ │ │ ├── MainActivity.kt # 主界面
|
||||
│ │ │ ├── AgentService.kt # 后台服务
|
||||
│ │ │ └── BootReceiver.kt # 开机启动
|
||||
│ │ ├── res/
|
||||
│ │ │ ├── layout/ # 布局文件
|
||||
│ │ │ └── values/ # 资源文件
|
||||
│ │ └── AndroidManifest.xml
|
||||
│ └── build.gradle
|
||||
├── build.gradle
|
||||
├── settings.gradle
|
||||
└── README.md
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 编译要求
|
||||
|
||||
- Android Studio 2023.1+
|
||||
- JDK 17
|
||||
- Gradle 8.2
|
||||
- Android SDK 34
|
||||
|
||||
---
|
||||
|
||||
## 联系方式
|
||||
|
||||
- 微信: 28533368
|
||||
- 邮箱: zhiqun@qq.com
|
||||
Reference in New Issue
Block a user