更多信息请访问:https://harmonyos.51cto.com,与华为官方共建的鸿蒙技术社区Hi3516AICamera开发板配备了一个无线模块。可以工作在AP和STA模式。我们可以通过系统自带的设置APP实现连接Wifi热点的功能。但是我在开发过程中发现,如果我在设置中连接一个Wifi热点,然后退出设置,Wifi就会断开!根据串口日志,退出设置时有这样一行输出:[plat_pm]wifineedalwayson,donotclose!!那基本上这个设置里的wifi连接功能是没用的,那么有没有办法永久连接wifi呢?答案是肯定的:方法一,使用内置的wpa_supplicant;方法二,在app中调用wifi接口。1.编译Wifi相关示例代码在/applications/sample/camera/communication目录下,有以下三个目录:hostapd提供AP模式的例子wpa_cli提供监听事件和控制wpa的例子wpa_supplicant提供STA的例子mode观察这三个目录,除了.c源码文件外,还有几个.conf文件,分别是AP和STA模式的配置文件..../communication/hostapd/config/hostapd.conf,配置AP模式的文件,我们关心的主要是ssid:interface=wlan0driver=hdfwifictrl_interface=udpssid=testaphw_mode=gchannel=1ignore_broadcast_ssid=0如果要给AP设置密码,需要增加几行配置:auth_algs=1wpa=2wpa_passphrase=12345678rsn_pairwise=CCMP..../communication/wpa_supplicantconfig/wpa_supplicant.conf,STA模式配置文件:country=GBctrl_interface=udpnetwork={ssid="yourssid"psk="yourpwd"}其中network部分初始为empty,ssid和psk自行添加,即热点的ssid和密码。这些conf文件在编译烧录后会存放在/etc目录下。默认情况下,这些不参与编译。我们需要修改//applications/sample/camera/communication/BUILD.gn文件,添加相关特性:"]}然后编译代码:pythonbuild.pyipcamera_hi3516dv300-bdebug2.测试烧录到Hi3516开发板,不再赘述。启动后用串口连接,查看bin目录下的文件:OHOS#ls/binDirectory/bin:-rwxrwxrwx13488u:0g:0wpa_supplicant-rwxrwxrwx50484u:0g:0bundle_daemon-rwxrwxrwx13488u:0g:0hostapd-rwxrwxrwx13440u:0g:0foundation-rwxrwxrwx25924u:0g:0wms_server-rwxrwxrwx21724u:0g:0appspawn-rwxrwxrwx13540u:0g:0query.bin-rwxrwxrwx13540u:0g:0abilityMain-rwxrwxrwx13488u:0g:0apphilogcat-rwxrwxrwx13504u:0g:0led_app-rwxrwxrwx13540u:0g:0media_server-rwxrwxrwx25828u:0g:0init-rwxrwxrwx13792u:0g:0hilogcat-rwxrwxrwx13488u:0g:0camera_app-rwxrwxrwx25824u:0g:0shell-rwxrwxrwx13488u:0g:0wpa_cli可以看到比之前多了几个文件:wpa_supplicant,hostapd,wpa_cli再次查看etc目录,OHOS#ls/etcDirectory-wxetc:rw:0g:0os-release-rwxrwxrwx107u:0g:0hostapd.conf-rwxrwxrwx3473u:0g:0init.cfg-rwxrwxrwx82u:0g:0wpa_supplicant.conf可以看到比之前多了几个文件,hostapd.conf,wpa_supplicant.conf这里简单介绍一下如何使用wpa_supplicant。详细的命令格式请参考命令自带的帮助。这是连接热点的示例。命令格式:cd/bin./wpa_supplicant-iwlan0-c/etc/wpa_supplicant.conf-i参数指定网卡名称-c参数指定配置文件/etc/wpa_supplicant.conf包含热点的ssi我们想连接到d和密码以手机为热点进行测试,连接的设备由0变为1,表示Wifi连接成功。下一篇文章将介绍如何通过调用代码连接wifi。更多信息请访问:Harmonyos.51cto.com,与华为官方合作打造的鸿蒙技术社区
