簡化的鴻蒙WiFi接口,僅需幾行代碼,簡單易用!
51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)
https://harmonyos.51cto.com/#zz
使用鴻蒙原始WiFI API接口進(jìn)行編程,整個過程稍顯繁瑣,為此我們對鴻蒙原始WiFi API接口做了一層封裝,形成了一套更簡單易用的接口。
簡化后的API接口
STA模式
- // 連接WiFi熱點,并啟動DHCP客戶端;成功會返回一個netId,失敗返回 -1
- int ConnectToHotspot(WifiDeviceConfig* apConfig);
- // 斷開WiFi連接,以及停止DHCP客戶端
- void DisconnectWithHotspot(int netId);
AP模式
- // 打開WiFi熱點,同時啟動DHCP服務(wù)器,成功返回SUCCESS
- int StartHotspot(const HotspotConfig* config);
- void StopHotspot(void);
使用示例
STA模式,連接其他熱點:
- // setup your AP params
- WifiDeviceConfig apConfig = {0};
- strcpy(apConfig.ssid, "ABCD");
- strcpy(apConfig.preSharedKey, "12345678");
- apConfig.securityType = WIFI_SEC_TYPE_PSK;
- int netId = ConnectToHotspot(&apConfig);
斷開到WiFi熱點的連接:
- DisconnectWithHotspot(netId);
AP模式,開啟WiFi熱點:
- // 準(zhǔn)備AP的配置參數(shù)
- HotspotConfig config = {0};
- strcpy(config.ssid, "HiSpark-AP");
- strcpy(config.preSharedKey, "12345678");
- config.securityType = WIFI_SEC_TYPE_PSK;
- WifiErrorCode errCode = StartHotspot(&config);
- printf("StartHotspot: %d\n", errCode);
關(guān)閉熱點:
- StopHotspot();
當(dāng)然,整個實現(xiàn)代碼也不復(fù)雜,你可以再此基礎(chǔ)之上參考著自己重新實現(xiàn),或者進(jìn)行一些修改。
完整demo代碼,可以在本帖附件下載。
如何編譯
本項目下有兩個示例代碼,源碼位于demo目錄下,編譯請按照如下流程進(jìn)行;
- 將附件代碼解壓到本地openharmony源碼的頂層目錄;
- 修改openharmony的build\lite\product\wifiiot.json文件:將"//applications/sample/wifi-iot/app"替換為"easy_wifi:app"
- 執(zhí)行編譯命令:python build.py wifiiot
- 如需編譯AP模式的demo,請修改demo目錄下的BUILD.gn文件;注釋掉"wifi_connect_demo.c"行,放開"wifi_hotspot_demo.c"行;
鴻蒙原始WiFiService接口
使用鴻蒙原始WiFI API接口進(jìn)行編程,STA模式需要使用原始STA接口以及一些DHCP客戶端接口。
STA模式
鴻蒙WiFi STA模式的API接口有:

以及Hi3861 SDK的DHCP客戶端接口:

AP模式
使用鴻蒙原始WiFI API接口進(jìn)行編程,AP模式需要使用原始AP模式接口以及一些DHCP服務(wù)端接口。
鴻蒙WiFi STA模式的API接口有:
以及Hi3861 DHCP服務(wù)端接口:

項目地址:https://gitee.com/hihopeorg/easy_wifi
如果發(fā)現(xiàn)有什么錯誤,或者可以改進(jìn)的地方歡迎在這里評論,或者到碼云上提交 Issue
51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)
https://harmonyos.51cto.com/#zz