一个基于 Android 的远程屏幕控制和操作同步应用,支持服务器/客户端模式,允许用户在一台设备上控制另一台 Android 设备的屏幕操作。
- 🖥️ 屏幕同步:实时同步 Android 设备屏幕内容
- 🎮 远程操作:通过客户端设备控制服务器设备的触摸操作
- 🔄 双向通信:支持服务器和客户端两种模式
- 🎨 Material Design 3:现代化的 UI 界面,支持深色模式
- 🔐 无障碍服务:通过 Android 无障碍服务实现触摸事件模拟
- 📱 自适应布局:支持不同屏幕尺寸的设备
- ServerService: 服务器服务,监听客户端连接并处理触摸事件
- ClientSocketManager: 客户端连接管理,连接到服务器并发送控制指令
- TouchAccessibilityService: 无障碍服务,模拟触摸操作
- CoordinateMapper: 坐标映射器,处理不同设备间的坐标转换
- MainActivity: 主界面,显示连接状态和模式选择
- ServerActivity: 服务器模式界面,显示等待连接状态
- ClientActivity: 客户端模式界面,提供远程控制面板
- ScreenUtils: 屏幕工具类,获取屏幕尺寸等信息
- NetworkUtils: 网络工具类,处理网络连接相关功能
- Constants: 常量定义
- 语言: Kotlin
- UI 框架: Jetpack Compose
- 架构: MVVM
- 网络: Socket TCP/IP
- 数据存储: DataStore Preferences
- 协程: Kotlin Coroutines
- 最低版本: Android 7.0 (API 24)
- 目标版本: Android 15 (API 36)
-
服务器设备(被控端):
- 安装并打开应用
- 授予无障碍服务权限
- 选择"服务器模式"
- 记录显示的 IP 地址和端口
-
客户端设备(控制端):
- 安装并打开应用
- 选择"客户端模式"
- 输入服务器的 IP 地址和端口
- 点击连接
- 确保两台设备在同一局域网内
- 启动服务器设备的应用
- 在客户端设备输入服务器 IP 和端口
- 连接成功后,客户端可以控制服务器设备的屏幕
- 无障碍服务: 用于模拟触摸操作
- 网络权限: 用于设备间通信
- 前台服务: 保持服务运行
app/
├── src/main/
│ ├── java/com/example/myapplication/
│ │ ├── ui/ # UI 界面
│ │ ├── service/ # 服务层
│ │ ├── network/ # 网络通信
│ │ ├── util/ # 工具类
│ │ ├── model/ # 数据模型
│ │ ├── mapper/ # 数据映射
│ │ └── repository/ # 数据仓库
│ └── res/ # 资源文件
└── build.gradle.kts # 构建配置
- Android Studio Hedgehog 或更高版本
- JDK 11 或更高版本
- Android SDK 36
- 克隆项目到本地
- 使用 Android Studio 打开项目
- 同步 Gradle 依赖
- 连接 Android 设备或启动模拟器
- 运行应用
- 请确保在可信的网络环境下使用
- 不要在不安全的网络中暴露服务
- 使用完毕后及时关闭服务
- 需要 Android 7.0 及以上版本
- 部分设备可能需要特殊的无障碍服务配置
本项目仅供学习和研究使用
如有问题或建议,请通过以下方式联系:
- Gitee: lxt_henan
- Email: [your-email@example.com]
开发时间: 2026 年 4 月 版本: 1.0.0