一款面向智能摄像头及家庭安防设备的 Android 应用。用户可通过扫码或设备 ID 添加摄像头,完成 Wi‑Fi 配置和设备管理;连接设备后,可远程查看实时画面、进行对讲、截图与录像,并查看设备中的历史影像。应用还支持移动侦测、报警消息和联动设备管理,以及录像模式、用户权限、存储空间等设备设置。
设计思路与核心流程
设备接入是整个应用的基础。用户可通过扫码、输入设备 ID 或搜索设备完成添加,并进行 Wi‑Fi 配置。连接时,程序会优先尝试局域网连接;未成功时,再通过 P2P 方式建立连接。连接建立后发送登录及控制指令,并通过心跳和超时处理维护设备状态。设备在线状态、登录结果等变化通过事件总线传递给对应页面。
实时预览将设备控制与媒体播放分开处理:设备通信模块负责请求视频流、获取音频配置和发送对讲等指令;播放器模块负责媒体解码、画面渲染及播放状态。播放页面在此基础上提供清晰度切换、声音控制、截图、录像和对讲等操作。历史媒体则通过独立的列表与播放页面组织,方便按文件或时间查看。
设备设置按业务拆分为 Wi‑Fi、用户、报警、录像、时间和存储等页面。设置页面负责收集用户操作,再由设备连接层发送相应指令并处理返回结果。设备、账户和消息等数据通过本地数据库保存,使应用重启后仍能恢复设备列表与相关记录。
技术栈
- 开发语言与界面: Java、Android SDK、Android Support Library、Activity、Fragment。
- 设备通信: 项目内的 P2P SDK、设备控制指令及 XML 消息解析;通过事件总线分发设备回调。
- 音视频: 基于 Ijk/FFmpeg 相关代码的原生播放器模块,使用 JNI/NDK 处理底层媒体能力。
- 数据存储: SQLite、GreenDAO,持久化设备、账户和消息数据。
- 网络与工具: ksoap2 用于账户服务的 SOAP 请求;项目还集成了 Glide、二维码识别等工具库。
- 构建方式: Gradle 多模块构建,sdk 使用 CMake,playerlibrary 使用 NDK Build 构建原生代码