精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Hi3516如何連接Wifi(二)

系統
文章由鴻蒙社區產出,想要了解更多內容請前往:51CTO和華為官方戰略合作共建的鴻蒙技術社區https://harmonyos.51cto.com

[[390308]]

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com

書承上回(Hi3516如何連接Wifi(一)),上一篇聊了一下怎樣在Hi3516中用wpa_supplicant連接到Wifi熱點,本文講一下如何通過編程實現。

一、總體思路

首先我們需要搞清楚Hi3516中Wifi的相關模塊,以及他們之間的關系,其實和linux是很相似的。首先,我們需要運行一個的Daemon,也就是上文提到的wpa_supplicant,負責對網卡的硬件調用,比如連接wifi、斷開wifi、啟動熱點等等。這個Daemon開放一個socket端口,外部程序可以通過本地連接向其發送指令實現間接對wifi的調用,這無疑是給我們提供了很大的便利,不用從底層重新造輪子了。

鴻蒙OS代碼中,有一個示例,在//applications/sample/camera/communication/wpa_cli,實現了連接Daemon、掃描熱點、連接熱點等功能。

現在方案就很明確了,第一啟動Daemon,第二向Daemon發送命令。下面我們就來詳細分析如何實現。

二、啟動Daemon

查看代碼//applications/sample/camera/communication/wpa_supplicant/src/wpa_sample.c,找到main函數,發現它只做了一件事情,那就是調用pthread_create創建了一個線程,線程執行的函數是ThreadMain。而ThreadMain也只做了一件事情,那就是加載/usr/lib/libwpa.so,然后執行了其中的wpa_main函數,同時把命令行參數傳遞了進去。而wpa_main函數具體調用網卡就是通過hdf框架向內核態發送消息了,這里就不再贅述。

  1. static void* ThreadMain() 
  2.     printf("[WpaSample]init wpa_supplicant.\n"); 
  3.  
  4.     void *handleLibWpa = dlopen("/usr/lib/libwpa.so", RTLD_NOW | RTLD_LOCAL); 
  5.     if (handleLibWpa == NULL) { 
  6.         printf("[WpaSample]dlopen libwpa failed.\n"); 
  7.         return NULL
  8.     } 
  9.     int (*func)(intchar **) = NULL
  10.     func =  dlsym(handleLibWpa, "wpa_main"); 
  11.     if (func == NULL) { 
  12.         dlclose(handleLibWpa); 
  13.         printf("[WpaSample]dlsym wpa_main failed.\n"); 
  14.         return NULL
  15.     } 
  16.     int ret = func(g_wpaArgc, g_wpaArg); 
  17.  
  18.     printf("[WpaSample]run wpa_main failed, ret:%d.\n", ret); 
  19.     for (int i = 0; i < g_wpaArgc; i++) { 
  20.         printf("[WpaSample]arg %d:%s.\n", i, g_wpaArg[i]); 
  21.     } 
  22.  
  23.     if (dlclose(handleLibWpa) != 0) { 
  24.         printf("[WpaSample]dlclose libwpa failed.\n"); 
  25.         return NULL
  26.     } 
  27.     return NULL
  28.  
  29. int main(int argc, char *argv[]) 
  30.     g_wpaArgc = argc; 
  31.     for (int i = 0; i < g_wpaArgc; i++) { 
  32.         g_wpaArg[i] = argv[i]; 
  33.     } 
  34.  
  35.     int ret = pthread_create(&g_wpaThread, NULL, ThreadMain, NULL); 
  36.     if (ret != 0) { 
  37.         printf("[WpaSample]create thread failed error:%s.\n", strerror(ret)); 
  38.         return 1; 
  39.     } 
  40.     pthread_join(g_wpaThread, NULL); 
  41.     return 0; 

我們要做的就是仿照main函數寫自己的代碼,把參數固定就可以了。我們的參數是這樣的:g_wpaArg[0]="",g_wpaArg[1]="-iwlan0",g_wpaArg[2]="-c/etc/wpa_supplicant.conf",其中第0個參數是可執行文件的名稱,這里可以隨意填或者直接留空。

如果只是想啟動Daemon,不連接到任何Wifi熱點,那這里第二個參數-c指向的.conf文件中,不應該包含ssid和psk,也就是直接使用系統自帶的默認conf就可以。我們在上一篇文章中修改了wpa_supplicant.conf,加入了ssid和psk。這里做一個改進,原wpa_supplicant.conf保持不變,新增一個wpa_supplicant_(你的熱點名稱).conf,加入ssid和psk,然后修改//applications/sample/camera/communication/wpa_supplicant/BUILD.gn,添加需要copy的文件:

  1. copy("config2") { 
  2.     sources = [ 
  3.         "config/wpa_supplicant_(xxx).conf" 
  4.     ] 
  5.     outputs = [ 
  6.         "$root_out_dir/etc/wpa_supplicant_(xxx).conf" 
  7.     ] 

這樣我們wpa_supplicant就有兩種操作了,只啟動Daemon,和啟動Daemon且連接到指定熱點,只需要改變-c指定的conf文件。

補充一下,我曾嘗試過使用system函數執行wpa_supplicant的方式啟動Daemon,但是失敗了,原因是鴻蒙暫時還不支持system函數。具體可以看一下system的代碼實現\\third_party\musl\src\process\system.c

  1. int system(const char *cmd) 
  2.     pid_t pid; 
  3.     sigset_t old, reset; 
  4.     struct sigaction sa = { .sa_handler = SIG_IGN }, oldint, oldquit; 
  5.     int status = -1, ret; 
  6.     posix_spawnattr_t attr; 
  7.  
  8.     unsupported_api(__FUNCTION__);//不受支持的api 
  9. ... 

另外,嘗試了用fork創建線程也是可行的。

還有一個文件權限問題。如果你用上述方法編寫一個控制臺程序來運行是沒有問題的,無非就是重寫了一個sample里的wpa_supplicant。但是當你在hap中通過ace調用時就出現了錯誤:

  1. OHOS # 01-01 00:40:03.661 17 59 I 03900/ACE: InitWifi invoked! 
  2. [WpaSample]init wpa_supplicant. 
  3. 01-01 00:40:03.661 17 59 I 03900/ACE: InitDaemon2 
  4. Successfully initialized wpa_supplicant 
  5. [HDF:E/hdf_syscall_adapter]Open file node failed: /dev/hdfwifi 
  6. [HDF:E/HDF_LOG_TAG]WpaMsgServiceInit: fail to get remote service! 

看樣子是打開/dev/hdfwifi失敗了,這個問題我研究了很久,最后意識到hap的執行用戶可能和shell不同,shell是root用戶在執行,而hap肯定不是root在執行,這導致了權限不足。我看了一下/dev/hdfwifi的權限

  1. OHOS # ls /dev 
  2. Directory /dev: 
  3. (略) 
  4. -rw-rw-r-- 0        u:0     g:99    hdfwifi 
  5. (略) 

其他用戶是r權限,顯然我們也需要w權限。執行chmod 0666 /dev/hdfwifi就可以了,但燒寫后通過連接shell做這件事很不方便,最好能自動化。

這里我們可以借助鴻蒙系統初始化階段執行的job來實現我們的目的,在\\base\startup\services\init_lite\src\main.c負責執行系統啟動后的任務,包括各種job和service,job分為pre-init,init,post-init三個階段。具體要執行哪些命令,都寫在\\vendor\huawei\camera\init_configs\init_liteos_a_3516dv300.cfg配置文件中,我們要做的就是在job中找到post-init,然后在cmds添加我們的指令chmod 0666 /dev/hdfwifi

  1.     "jobs" : [{ 
  2.             "name" : "pre-init"
  3.             "cmds" : [ 
  4.                 "mkdir /storage/data/log"
  5.                 (略) 
  6.             ] 
  7.         }, { 
  8.             "name" : "init"
  9.             "cmds" : [ 
  10.                 "start shell"
  11.                 (略) 
  12.             ] 
  13.         }, { 
  14.             "name" : "post-init"
  15.             "cmds" : [ 
  16.                 "chown 0 99 /dev/dev_mgr"
  17.                 "chown 0 99 /dev/hdfwifi"
  18.                 "chmod 0666 /dev/hdfwifi",//這里 

下一篇再將如何連接Daemon,真正實現連接Wifi,以及如何通過ACE在UI界面中操作連接Wifi。

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com

 

責任編輯:jianghua 來源: 鴻蒙社區
相關推薦

2021-04-09 09:45:21

鴻蒙HarmonyOS應用

2021-03-16 09:49:16

鴻蒙HarmonyOS應用

2021-07-09 14:20:23

鴻蒙HarmonyOS應用

2022-04-15 14:45:49

Hi3516系統類型燒錄鴻蒙

2021-11-09 15:28:41

鴻蒙HarmonyOS應用

2021-05-25 14:47:43

鴻蒙HarmonyOS應用

2021-12-03 09:50:39

鴻蒙HarmonyOS應用

2021-06-25 09:28:46

鴻蒙HarmonyOS應用

2021-09-24 10:20:42

鴻蒙HarmonyOS應用

2021-07-21 09:58:50

鴻蒙HarmonyOS應用

2021-07-19 15:34:05

鴻蒙HarmonyOS應用

2021-10-09 10:12:39

鴻蒙HarmonyOS應用

2021-03-02 14:30:20

鴻蒙HarmonyOS應用

2022-02-16 16:01:02

Hi3516開發板鴻蒙

2021-08-06 15:09:22

鴻蒙HarmonyOS應用

2021-07-07 09:45:20

鴻蒙HarmonyOS應用

2020-10-16 09:50:37

Hi3861WiFi熱點

2022-03-14 15:26:59

Hi3516Ark子系統鴻蒙

2021-07-05 09:35:36

鴻蒙HarmonyOS應用

2021-07-08 16:16:59

鴻蒙HarmonyOS應用
點贊
收藏

51CTO技術棧公眾號

亚洲人成在线影院| 天堂精品在线视频| 中文字幕国产精品一区二区| 国产日韩欧美在线| 国产第一页浮力| 日韩三级av高清片| 色综合久久中文字幕综合网| 亚洲午夜高清视频| 欧美一级做性受免费大片免费| 激情欧美丁香| 在线播放国产精品| 91精品人妻一区二区三区四区| 久久人体大尺度| 国产精品久久久久久福利一牛影视| 国产精品一区二区三区在线| 波多野结衣在线观看一区| 亚洲在线久久| 在线视频欧美性高潮| 亚洲一级Av无码毛片久久精品| 韩日一区二区| 狠狠色狠色综合曰曰| 天天操天天干天天玩| 欧美孕妇性xxxⅹ精品hd| 免费一级片91| 91av在线网站| 五月婷婷一区二区| 久久国产精品亚洲人一区二区三区 | 300部国产真实乱| 激情视频在线观看免费| fc2成人免费人成在线观看播放| 91美女片黄在线观看游戏| 亚洲 日本 欧美 中文幕| 影音先锋日韩资源| 欧美老肥婆性猛交视频| 久草手机视频在线观看| 精品理论电影在线| 亚洲免费视频网站| 一级欧美一级日韩片| 99re8这里有精品热视频8在线| 4438亚洲最大| 日韩一级片播放| 成人免费网站视频| 欧美日韩一区二区免费视频| 国产一级爱c视频| 亚洲91av| 亚洲一区二区影院| a级免费在线观看| 日韩免费影院| 亚洲曰韩产成在线| 久久久久久久久久伊人| 成人黄色在线电影| 一区二区在线电影| 国产精品videossex国产高清| 先锋成人av| 一区二区三区不卡视频在线观看| 黄色一级片国产| 手机在线免费观看av| 一区二区三区日韩精品视频| 久久久久久久久久伊人| av中文字幕在线看| 精品成人久久av| 国产欧美在线一区| 日韩精品99| 欧美视频在线观看一区二区| 男人的天堂最新网址| 亚洲青青久久| 欧美大胆一级视频| 最新在线黄色网址| 国产精品视频一区二区三区四蜜臂| 亚洲精品中文字| 亚洲精品国产一区黑色丝袜| 日本一二区不卡| 久久久成人精品| 激情五月婷婷在线| 中日韩男男gay无套| 茄子视频成人在线| 中文字幕人妻一区二区在线视频| 精品一区二区三区免费毛片爱| 1区1区3区4区产品乱码芒果精品| 色呦呦中文字幕| 国产午夜精品在线观看| 椎名由奈jux491在线播放| 91极品在线| 欧美日韩亚洲网| 福利视频999| 狠狠一区二区三区| 日韩毛片在线观看| 国产精品suv一区二区88| 欧美日韩国产成人精品| 国产99在线|中文| 国产又粗又大又黄| av电影天堂一区二区在线| 日韩成人av网站| 亚洲七七久久综合桃花剧情介绍| 日韩欧美福利视频| 91丝袜超薄交口足| 色天天色综合| 久久五月天综合| 天天干在线播放| 国内精品免费**视频| 精品国产免费久久久久久尖叫 | 久久亚洲私人国产精品va| 日韩精品在线不卡| 久久精品二区亚洲w码| 国产欧美日韩一区| 日本精品在线| 天天操天天色综合| 99999精品| 精品久久视频| 欧美亚洲午夜视频在线观看| 99国产精品久久久久久久成人| 久久一区二区三区国产精品| 国产欧美久久久久| 亚洲狼人在线| 亚洲人午夜精品免费| 国语对白一区二区| 激情综合色丁香一区二区| 免费观看国产成人| 亚洲精品传媒| 91福利精品视频| 伊人网综合视频| 欧美日韩99| 91传媒视频免费| 黄色在线论坛| 欧美三级日韩三级| 亚洲日本精品视频| 夜夜嗨av一区二区三区网站四季av| 69堂成人精品视频免费| 一广人看www在线观看免费视频| 色偷偷久久人人79超碰人人澡| 精品1卡二卡三卡四卡老狼| 66国产精品| 成人免费高清完整版在线观看| 国产黄在线看| 在线日韩一区二区| 无码一区二区三区在线| 99亚洲伊人久久精品影院红桃| 不卡一卡2卡3卡4卡精品在| 黄色网页在线免费看| 欧美私人免费视频| 香蕉视频久久久| 老司机精品视频网站| 欧美亚洲爱爱另类综合| 三级中文字幕在线观看| 亚洲国产天堂久久综合网| 精品小视频在线观看| 国产成a人亚洲精品| 日韩成人三级视频| 97色成人综合网站| 久久久噜久噜久久综合| www.97av| 亚洲毛片av在线| 手机看片国产精品| 狠狠爱成人网| 国产伦精品一区二区三毛| 91制片在线观看| 日韩av中文在线| 亚洲精品男人天堂| 久久精品综合网| 欧美大黑帍在线播放| 老司机成人在线| 日韩av大片免费看| 最新97超碰在线| 69成人精品免费视频| 免费日韩在线视频| 99国产精品久久| 一区二区三区韩国| 五月激情综合| 亚洲直播在线一区| f2c人成在线观看免费视频| 精品伊人久久97| 伊人免费在线观看| 亚洲激情在线激情| 亚洲蜜桃精久久久久久久久久久久| 一区二区三区成人精品| 日韩久久久久久久久久久久久| 亚洲成人毛片| 久久人人爽人人爽人人片av高请 | 欧美一级大片在线观看| 啊v视频在线| 日韩欧美高清dvd碟片| 国产高清中文字幕| 亚洲女同女同女同女同女同69| 亚洲精品乱码久久久久久蜜桃欧美| 裸体一区二区| 日本一区二区三区四区五区六区| 国产+成+人+亚洲欧洲在线| 日韩av大片免费看| 色呦呦久久久| 国产亚洲欧美一区| 午夜精品无码一区二区三区| 色屁屁一区二区| 杨钰莹一级淫片aaaaaa播放| 26uuu精品一区二区三区四区在线| 天天影视色综合| 欧美亚洲在线| 超碰超碰超碰超碰超碰| 九九久久电影| 99精品国产一区二区| 成人精品国产亚洲| 久久免费福利视频| 蜜桃视频在线观看免费视频网站www| 亚洲国产99精品国自产| 97在线视频人妻无码| 一本在线高清不卡dvd| 麻豆视频在线观看| 中文字幕av一区二区三区高| 国产麻豆xxxvideo实拍| 国产精品系列在线播放| 午夜精品在线免费观看| 国产精品资源| 日韩成人三级视频| 伊人久久大香线| 亚洲人一区二区| 亚洲区小说区| 国产伦精品一区二区三区视频孕妇 | 欧美视频日韩| 伊人久久青草| 精品一区二区三| 麻豆91蜜桃| 国产精品一区二区三区美女| 亚洲在线www| 亚洲精品三区| 成人精品网站在线观看| 少妇精品视频一区二区免费看| 555www成人网| 美女高潮在线观看| 久久久久在线观看| a级片在线免费| 久久久久久久亚洲精品| 香蕉久久aⅴ一区二区三区| 欧美成人第一页| 国产调教视频在线观看| www日韩中文字幕在线看| 在线观看免费网站黄| 在线看日韩欧美| 国产h在线观看| 国产亚洲成av人片在线观看桃| 麻豆影视在线| 日韩精品在线免费播放| 日本高清视频免费看| 亚洲国产高潮在线观看| 天天操天天干天天| 亚洲精品国产精品乱码不99按摩 | 色综合伊人色综合网| jizz在线观看视频| 国产亚洲视频在线| 9i精品一二三区| 中文字幕久精品免费视频| 你懂的在线免费观看| 亚洲欧美成人网| 蝌蚪视频在线播放| 国产亚洲视频在线| 在线免费黄色| 美女福利视频一区| 国产蜜臀av在线播放| 国内自拍欧美激情| 日韩脚交footjobhd| 国产激情久久久久| 亚洲福利影视| 国产精品日本一区二区| 乱亲女h秽乱长久久久| 欧美一进一出视频| 色婷婷亚洲mv天堂mv在影片| 九一免费在线观看| 亚洲黄网站黄| 青青在线视频免费| 精品一区二区三区在线视频| 中文字幕人妻熟女人妻a片| www..com久久爱| 中文字幕一区二区人妻在线不卡| 欧美激情一区不卡| 欧美人妻精品一区二区免费看| 亚洲成人www| 免费一级a毛片| 91精品一区二区三区久久久久久| 国模人体一区二区| 亚洲日本欧美日韩高观看| 精品孕妇一区二区三区| 国内精品久久久久久影视8| 亚洲欧洲自拍| 91精品国产综合久久香蕉| 国产精品玖玖玖在线资源| 日韩理论片在线观看| 午夜精品999| 色综合av综合无码综合网站| 久久99精品久久久久久久久久久久| 亚洲色图欧美另类| 亚洲国产精品传媒在线观看| 九九视频在线免费观看| 欧美亚男人的天堂| 亚洲国产成人精品一区二区三区| 亚洲少妇中文在线| 午夜dj在线观看高清视频完整版| 国产成人91久久精品| 亚洲免费一区三区| 神马影院一区二区三区| 一区免费视频| 国产精品嫩草影院8vv8| 91老司机福利 在线| 精品无码久久久久成人漫画 | 91在线你懂的| 日韩av中文字幕在线播放| 中中文字幕av在线| 国产精品视频网站| 色橹橹欧美在线观看视频高清| 干日本少妇视频| 日本不卡123| 国产激情视频网站| 亚洲欧美欧美一区二区三区| 精人妻无码一区二区三区| 亚洲成人av在线播放| 国产三区视频在线观看| 国产成人综合精品| 久久精品论坛| 一二三四中文字幕| 极品销魂美女一区二区三区| 微拍福利一区二区| 欧美日韩国产一区在线| 亚洲av少妇一区二区在线观看| 日韩在线观看免费高清| 日韩成人高清| 蜜桃精品久久久久久久免费影院| 亚洲福利一区| 日韩av成人网| 亚洲人成人一区二区在线观看 | 日韩在线伦理| 国产欧美日韩伦理| 一区在线免费| 性感美女一区二区三区| 亚洲毛片av在线| 国产乱码一区二区| 久久久电影免费观看完整版| 91嫩草国产线观看亚洲一区二区| 亚洲免费视频一区| 日本成人中文字幕| 无码少妇一区二区| 在线观看av一区| 欧美男男同志| 国产福利精品av综合导导航| 国产精品一区二区99| 妺妺窝人体色www在线观看| 久久久久九九视频| 波多野结衣一区二区三区四区| 亚洲深夜福利视频| 精品福利在线| 一区在线电影| 国产精品99久久久| 国产在线观看免费av| 亚洲高清久久网| 成人性生活视频| 欧美一二三区| 久久电影国产免费久久电影| 秋霞欧美一区二区三区视频免费 | 国产精品露脸自拍| 久久精品国产99久久| 午夜一区二区视频| 一区二区三区资源| 日本黄色免费视频| 欧美亚洲一级片| 日韩欧美网站| 男人操女人下面视频| 亚洲1区2区3区4区| 日韩a在线看| 国产欧美一区二区| 欧美成人日韩| 少妇精品一区二区| 欧美丝袜丝交足nylons| 午夜小视频福利在线观看| 国产综合第一页| 青青草伊人久久| 欧美 日韩 国产 一区二区三区| 精品第一国产综合精品aⅴ| 国模冰冰炮一区二区| 亚洲欧洲国产日韩精品| 国产成人精品aa毛片| 欧美性猛交bbbbb精品| 少妇av一区二区三区| 91久久偷偷做嫩草影院电| 国产xxxxx在线观看| 中文字幕一区二区三区精华液 | 成人免费一级片| 欧美久久精品午夜青青大伊人| 欧美变态网站| 色啦啦av综合| 激情成人中文字幕| 国产一二区在线| 久久一区二区精品| 久久99国产精品久久99| 99精品视频99| 久久人体大胆视频| 一本色道久久综合亚洲精品酒店| 天天综合天天添夜夜添狠狠添| 午夜亚洲国产au精品一区二区| yes4444视频在线观看| 国产伦精品一区二区三毛| 另类小说欧美激情| 亚洲黄色一区二区| 久久综合亚洲社区| 国产精品欧美日韩一区|