高通平台WiFi学习--- WLAN 进阶:无需开启 WiFi 也能使用 P2P 功能的实现与探索
在移动设备与物联网应用中,WiFi P2P 技术为设备间直接通信提供了便捷途径。然而,传统实现中 P2P 功能依赖于 WiFi 模块的整体开启,这在仅需临时直连的场景下会造成不必要的功耗开销和操作复杂性。本文将详细介绍如何在高通平台上通过代码改造,实现无需开启 WiFi 即可独立使用 P2P 功能的创新方案。
技术背景与挑战
标准 Android 系统中,P2P 功能通常作为 WiFi 系统的一部分存在,其启动依赖于 WiFi 模块的整体激活。这意味着即使用户仅需要 P2P 直连功能,也必须先开启完整的 WiFi 功能,这不仅增加了功耗,还可能在某些场景下带来不必要的网络连接。
我们的目标是打破这种依赖关系,实现:
- P2P 功能可以独立于 WiFi 主功能启动
- 减少不必要的系统资源占用
- 保持 P2P 原有的连接性能和稳定性
核心代码改造方案
1. P2P HAL 层独立启动机制
首先需要修改WifiP2pNative.java
,实现 P2P 相关硬件抽象层 (HAL) 的独立初始化和启动逻辑:
代码解析:
- 新增
startHalForP2p()
方法,实现了 P2P 专用 HAL 的独立初始化和启动 - 添加
startAndWaitForSupplicantConnection()
方法,确保 P2P 功能所需的 supplicant 服务能够可靠启动 - 通过重试机制(最多