精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

国产伦精品一区二区三区照片91 | 永久免费看mv网站入口78| 国产啊啊啊视频在线观看| 91在线视频免费91| 国产精品日韩欧美| 久久老司机精品视频| 亚洲自拍电影| 日韩欧美视频在线 | 日韩免费高清| 欧美大片一区二区| 韩国日本美国免费毛片| 欧美性受ⅹ╳╳╳黑人a性爽| 日韩精品三区四区| 欧美裸体xxxx极品少妇| 亚洲精品乱码久久久久久久久久久久 | 亚洲精品电影在线| 五月天激情播播| 精品极品在线| 悠悠色在线精品| 欧美污视频久久久| 风流老熟女一区二区三区| 免费看欧美女人艹b| 2018中文字幕一区二区三区| 69夜色精品国产69乱| 中文精品一区二区| 精品日韩欧美在线| 999久久久精品视频| 欧美电影h版| 亚洲18色成人| 大陆极品少妇内射aaaaaa| sese一区| 久久精品亚洲精品国产欧美 | 日本男女交配视频| 欧美jizz18hd性欧美| 久久免费电影网| 超碰在线观看97| 国产精品无码AV| 蜜臀av亚洲一区中文字幕| 日本成熟性欧美| 亚洲 欧美 视频| 亚洲精品综合| 久久久久久亚洲| 欧美黄色免费观看| 一区二区中文| 久久综合久久八八| 国产午夜精品理论片| 欧美电影免费观看高清| 中文字幕精品在线视频| 特级西西www444人体聚色| 午夜a一级毛片亚洲欧洲| 亚洲第一国产精品| 国产精品无码自拍| av不卡一区| 精品对白一区国产伦| 亚洲一区二区三区四区av| 中文字幕视频精品一区二区三区| 欧美日韩国产色| 国产av麻豆mag剧集| 日本三级韩国三级欧美三级| 夜夜嗨av一区二区三区四季av| 国产三级精品在线不卡| 国产福利视频导航| 成人动漫视频在线| 精品国产乱码久久久久久108| 一区二区三区播放| 韩国欧美一区二区| 成人欧美一区二区三区视频xxx| 黄色免费av网站| 老司机精品视频网站| 国产成人精品视频| 91亚洲国产成人久久精品麻豆| 国产欧美91| 国产精品第8页| 亚洲视频在线观看一区二区| 精品一区在线看| 91九色露脸| 婷婷在线观看视频| 久久青草国产手机看片福利盒子 | 欧美交a欧美精品喷水| 精品无人区乱码1区2区3区在线| 亚洲欧美天堂在线| 91精品丝袜国产高跟在线| 日韩成人av网址| 五月婷六月丁香| 欧美日本中文| 国产91|九色| 国产又粗又大又爽| 99精品视频在线免费观看| 色噜噜色狠狠狠狠狠综合色一| 午夜黄色小视频| 国产日韩精品一区二区三区 | 九一精品久久久| 国产精品视频一区二区三区| 亚洲精品一区二区三区在线观看| 日本女人黄色片| 色天下一区二区三区| 中文字幕日韩视频| 国产欧美日韩另类| 精品一区在线看| 久久久久se| 成人三级网址| 婷婷开心久久网| 亚洲小视频网站| 亚洲精品蜜桃乱晃| 精品少妇一区二区30p| jizz国产在线观看| 高清国产午夜精品久久久久久| 成人两性免费视频| 日韩a在线观看| 亚洲精品高清视频在线观看| 无遮挡又爽又刺激的视频| 日本一区二区乱| 在线成人中文字幕| 成人免费区一区二区三区| 国产在线精品不卡| 日韩欧美第二区在线观看| 久久香蕉一区| 欧美一区二区三区四区视频 | 26uuu国产一区二区三区| 欧美 另类 交| 黑人巨大精品欧美一区二区桃花岛| 黑人精品xxx一区一二区| 亚洲一区二区中文字幕在线观看| 国产精品1区在线| 亚洲天堂av女优| 日本网站在线播放| 国产精品一区免费视频| 亚洲国产婷婷香蕉久久久久久99| 一级毛片视频在线| 色婷婷av一区二区三区软件 | 日韩成人亚洲| 日韩av一区二区在线| 看免费黄色录像| 激情都市一区二区| 中文字幕在线中文字幕日亚韩一区| 成人免费看片| 欧美视频一区在线| 性欧美一区二区| 久久福利毛片| 欧美精彩一区二区三区| 免费在线小视频| 日韩激情av在线播放| 日本少妇裸体做爰| 99热这里都是精品| 国模无码视频一区二区三区| 乱亲女h秽乱长久久久| 午夜伦理精品一区 | 精品国产91亚洲一区二区三区婷婷| 亚洲第一黄色网址| 一本久道久久综合狠狠爱| 国产精品xxxx| а√天堂中文资源在线bt| 亚洲精品成人网| 欧美一区免费看| 国产欧美一区二区三区网站| 国产福利影院在线观看| 欧美亚洲激情| 国产精品久久久久久av下载红粉| 亚洲毛片在线播放| 性做久久久久久免费观看欧美| 国产色视频在线播放| 91麻豆国产自产在线观看亚洲 | 国产一级视频在线观看| 成人免费视频一区二区| 国产青青在线视频| 久久av电影| 国产精品视频色| а√天堂资源地址在线下载| 精品三级在线看| 久久夜色精品国产噜噜亚洲av| 国产一区在线视频| 欧美大黑帍在线播放| 免费观看久久av| 国产99久久久欧美黑人| 日韩专区在线| 精品国产自在久精品国产| www.国产com| 国产精品短视频| 亚洲天堂av网站| 久久午夜激情| 久久久99精品视频| 伊人成综合网yiren22| 国产在线久久久| 黄页网站大全在线免费观看| 亚洲视频国产视频| 国产三级伦理片| 日韩欧美中文免费| 五月天av网站| 久久久噜噜噜久久中文字幕色伊伊 | 国产伦视频一区二区三区| 亚洲性色av| 色阁综合伊人av| 神马久久久久久久久久| 欧美婷婷六月丁香综合色| 欧美日韩一级大片| 国产欧美日韩视频在线观看| 在线播放av网址| 奇米777欧美一区二区| youjizz.com在线观看| 精品国产乱码| 国产一区免费在线| 成人黄色91| 国产成人一区三区| 黄页网站在线观看免费| 色播久久人人爽人人爽人人片视av| 亚洲图片在线播放| 大伊人狠狠躁夜夜躁av一区| 成人免费视频国产免费观看| 26uuu色噜噜精品一区| 久久久久99人妻一区二区三区| 国内精品福利| 亚洲欧洲一区二区| 欧美美乳视频| 不卡的av一区| 精品视频在线播放一区二区三区 | 一区二区视频在线观看| 好吊妞视频这里有精品| 91热福利电影| jizzjizz少妇亚洲水多| 欧美孕妇与黑人孕交| 欧美1—12sexvideos| 久热国产精品视频| 久cao在线| 中文字幕无线精品亚洲乱码一区 | 成人在线一区二区三区| 国产美女18xxxx免费视频| 老司机一区二区三区| 日韩av一二三四区| 国产精品videossex久久发布| 久久偷看各类wc女厕嘘嘘偷窃| 国精产品一区一区三区四川| 91精品国产成人| heyzo高清在线| 欧美激情乱人伦一区| 99自拍视频在线观看| 久久精品国产99国产精品澳门| 亚洲国产欧美另类| 欧美一级电影网站| 99久久精品日本一区二区免费| 亚洲成a人在线观看| 欧美精品久久久久性色| 亚洲精品国产第一综合99久久| 在线 丝袜 欧美 日韩 制服| 成人小视频在线| caopor在线| 不卡影院免费观看| 偷偷色噜狠狠狠狠的777米奇| 蜜臀久久99精品久久久久久9| 乱熟女高潮一区二区在线| 欧美 日韩 国产一区二区在线视频| 国产精品推荐精品| 国产福利资源一区| 国产主播一区二区三区四区| 国内毛片久久| 欧美一级爱爱| 色综合久久网| 国产日韩第一页| 亚洲调教视频在线观看| 日本a在线免费观看| 国产精品五区| 在线观看av日韩| 精品在线观看视频| 91精品又粗又猛又爽| 成人少妇影院yyyy| 亚洲区自拍偷拍| 中文字幕欧美区| 中文字幕av久久爽av| 欧美日韩国产黄| 最好看的日本字幕mv视频大全| 精品久久久精品| 久久国产香蕉视频| 日韩一区二区高清| 偷拍自拍在线视频| 在线观看欧美日韩国产| 精品黄色免费中文电影在线播放| 亚洲美腿欧美激情另类| 18视频免费网址在线观看| 欧美大尺度在线观看| 色戒汤唯在线| 91精品国产综合久久男男 | 2020国产精品久久精品不卡| 136导航精品福利| 欧美日韩国产综合在线| 久久精品亚洲人成影院| 国产精品无码一区二区在线| 蜜臀av一区二区三区| 中文视频在线观看| 国产精品网友自拍| 特一级黄色大片| 51精品秘密在线观看| 天天干,天天操,天天射| xxxx欧美18另类的高清| 深夜成人在线| 91精品国产高清久久久久久91裸体 | 国产精品视频在线播放| 日韩激情精品| 四虎影院一区二区三区| 亚洲午夜电影| 蜜桃福利午夜精品一区| 2021久久国产精品不只是精品| 欧美亚一区二区三区| 亚洲免费看黄网站| 亚洲视频 欧美视频| 精品欧美一区二区三区精品久久 | 九九九在线观看| 91精品国产欧美日韩| 户外极限露出调教在线视频| 欧美成人精品在线观看| 日韩a**中文字幕| 国产乱人伦精品一区二区| 国产精品不卡| 美女一区二区三区视频| 91在线看国产| 久久精品性爱视频| 欧美一区二区三区思思人| 97电影在线观看| 奇米一区二区三区四区久久| 亚洲一区二区三区在线免费| 在线视频91| 免费成人美女在线观看.| 日本黄色网址大全| 午夜精品视频在线观看| 国产av一区二区三区| www.精品av.com| 欧美成人免费全部网站| 日本视频一区二区不卡| 亚洲在线成人| 中文文字幕文字幕高清| 亚洲午夜免费电影| 亚洲不卡免费视频| 欧美成人精品影院| 深夜激情久久| 国产精品视频二| 国产91露脸合集magnet| 国产这里有精品| 欧美成人精品福利| 欧美日韩在线视频免费观看| 亚洲自拍偷拍网址| 欧美jjzz| 欧美一级大片免费看| 亚洲一区在线电影| 亚洲国产精品视频在线| 韩国精品久久久999| 国产欧美三级电影| 99999精品视频| 久久久久国产精品人| 欧美三级网站在线观看| 国产一区二区三区在线免费观看| 色av手机在线| 国产传媒欧美日韩| 99精品国产福利在线观看免费| 日本在线观看免费视频| 国产精品女上位| 99精品免费观看| 久久久久久久久久亚洲| 欧美一区二区三区久久| 国产极品美女高潮无套久久久| 国产精品91一区二区| 久久久久成人精品无码| 亚洲精品国精品久久99热| 中文字幕第100页| 免费欧美一区| 亚欧在线免费观看| 成人欧美一区二区三区黑人麻豆| 久久久久99精品| 日韩av在线天堂网| av高清一区| eeuss中文| 成人一区二区三区| 亚洲另类在线观看| 久久久成人的性感天堂| 豆花视频一区二区| 妓院一钑片免看黄大片| 亚洲激情在线激情| 手机看片福利在线观看| 国产精品自在线| 亚洲第一黄色| 亚洲av熟女国产一区二区性色| 日韩欧美福利视频| 免费在线看a| 国产另类自拍| 日韩av一区二区在线影视| 国产va在线播放| 亚洲欧美一区二区三区久久| 不卡一区视频| 欧美在线观看成人| 亚洲美腿欧美偷拍| 黄网站在线观看| 高清视频一区二区三区| 日韩精品1区2区3区| 久久国产露脸精品国产| 亚洲人精品午夜在线观看| 日韩精品亚洲专区在线观看| 嫩草影院中文字幕| 亚洲国产激情av| 涩涩视频免费看| 91视频免费网站| 日韩国产成人精品| 国产精品18p| www国产91|