Files
workphone-sdk/sdk/android-app/README.md

195 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 工作手机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