鴻蒙Hi3516如何連接WiFi(一)
Hi3516 AI Camera開發(fā)板是帶有Wifi模塊的,可以工作在AP和STA模式。我們通過系統(tǒng)自帶的setting APP就可以實現(xiàn)連接Wifi熱點的功能。但我在開發(fā)過程中發(fā)現(xiàn),在setting中連接Wifi熱點然后退出setting,Wifi就斷開了!通過串口日志看到,在退出setting時輸出有這樣一行字:
- [plat_pm]wifi need always on,do not close!!
那基本上這個setting里的wifi連接功能就沒法用了,那還有沒有辦法持久連接wifi呢?
答案是有的:方法1,使用自帶的wpa_supplicant;方法2,在app中調(diào)用wifi接口。
一、編譯
Wifi相關示例代碼在//applications/sample/camera/communication目錄下,有如下三個目錄:
- hostapd提供AP模式示例
- wpa_cli提供監(jiān)聽事件和控制wpa的示例
- wpa_supplicant提供STA模式示例
觀察一下這三個目錄,除了有.c源碼文件外,還有幾個.conf文件,是AP和STA模式的配置文件
..../communication/hostapd/config/hostapd.conf,AP模式的配置文件,我們關心的主要是ssid:
- interface=wlan0
- driver=hdf wifi
- ctrl_interface=udp
- ssid=testap
- hw_mode=g
- channel=1
- ignore_broadcast_ssid=0
如果要給AP設置密碼,需要增加幾行配置:
- auth_algs=1
- wpa=2
- wpa_passphrase=12345678
- rsn_pairwise=CCMP
..../communication/wpa_supplicant/config/wpa_supplicant.conf,STA模式的配置文件:
- country=GB
- ctrl_interface=udp
- network={
- ssid="your ssid"
- psk="your pwd"
- }
其中network節(jié)初始是空的,自己添加ssid和psk,即熱點的ssid和密碼。這些conf文件在編譯燒錄后會存放在/etc目錄下
默認情況下,這些是不參與編譯的。我們需要修改//applications/sample/camera/communication/BUILD.gn文件,添加相關feature:
- lite_component("sample") {
- features = [
- "wpa_supplicant:wpa_sample",
- "hostapd:hostapd_sample",
- "wpa_cli:wpa_cli_sample"
- ]
- }
然后編譯代碼:
- python build.py ipcamera_hi3516dv300 -b debug
二、測試
燒錄到Hi3516開發(fā)板,不再贅述。
啟動后用串口連接,查看bin目錄下的文件:
- OHOS # ls /bin
- Directory /bin:
- -rwxrwxrwx 13488 u:0 g:0 wpa_supplicant
- -rwxrwxrwx 50484 u:0 g:0 bundle_daemon
- -rwxrwxrwx 13488 u:0 g:0 hostapd
- -rwxrwxrwx 13440 u:0 g:0 foundation
- -rwxrwxrwx 25924 u:0 g:0 wms_server
- -rwxrwxrwx 21724 u:0 g:0 appspawn
- -rwxrwxrwx 13540 u:0 g:0 query.bin
- -rwxrwxrwx 13540 u:0 g:0 abilityMain
- -rwxrwxrwx 13488 u:0 g:0 apphilogcat
- -rwxrwxrwx 13504 u:0 g:0 led_app
- -rwxrwxrwx 13540 u:0 g:0 media_server
- -rwxrwxrwx 25828 u:0 g:0 init
- -rwxrwxrwx 13792 u:0 g:0 hilogcat
- -rwxrwxrwx 13488 u:0 g:0 camera_app
- -rwxrwxrwx 25824 u:0 g:0 shell
- -rwxrwxrwx 13488 u:0 g:0 wpa_cli
可以看到比之前多了幾個文件:wpa_supplicant,hostapd,wpa_cli
再查看etc目錄,
- OHOS # ls /etc
- Directory /etc:
- -rwxrwxrwx 61 u:0 g:0 os-release
- -rwxrwxrwx 107 u:0 g:0 hostapd.conf
- -rwxrwxrwx 3473 u:0 g:0 init.cfg
- -rwxrwxrwx 82 u:0 g:0 wpa_supplicant.conf
可以看到比之前多了幾個文件,hostapd.conf,wpa_supplicant.conf
這里簡要介紹wpa_supplicant的使用方法,詳細命令格式請參考命令自帶的help
這里以連接熱點為例,命令格式:
- cd /bin
- ./wpa_supplicant -i wlan0 -c /etc/wpa_supplicant.conf
- -i參數(shù)指定網(wǎng)卡名稱
- -c參數(shù)指定配置文件
/etc/wpa_supplicant.conf文件中保存有我們要連接的熱點的ssid和密碼。
用手機做熱點進行測試,看到連接設備從0變?yōu)?,說明Wifi連接成功了。
下一篇文章將介紹如何用代碼調(diào)用的方式連接wifi。