當前位置:首頁 » 網路管理 » apiwifi
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

apiwifi

發布時間: 2022-08-16 18:49:37

① 有關android內核的wifi驅動api

通過程序來實現wifi的自動連接。

這兩天對android的wifi功能研究了一下。下面共享出自己封裝的WifiConnect類。(這里參考了ZXing開源項目中wifi模塊)

首先,要了解android關於wifi的API.

如果喜歡看English API,這是android關於wifi的API地址:

http://developer.android.com/reference/android/net/wifi/package-summary.html(配置Wifi,還需要設定許可權,android中關於wifi的API文檔中說明了要添加什麼許可權)

如果一看英語就頭疼,這里有關於wifi的api的中文解釋

http://note.sdo.com/u/1500295617/n/prb71~jGAHfpnM0l000bgN

切入正題,這里貼出一個封裝了的類(WifiConnect),在實例化WifiConnect對象時,需要傳入一個WifiManager對象。WifiConnect類向外部提供一個Connect方法,參數是無線的SSID,password,還有加密類型。

[java] view plainprint?
  1. <spanstyle="font-size:18px;">packagecom.example.aptest;
  2. importjava.util.List;
  3. importandroid.net.wifi.WifiConfiguration;
  4. importandroid.net.wifi.WifiManager;
  5. publicclassWifiConnect{
  6. WifiManagerwifiManager;
  7. //定義幾種加密方式,一種是WEP,一種是WPA,還有沒有密碼的情況
  8. publicenumWifiCipherType
  9. {
  10. WIFICIPHER_WEP,WIFICIPHER_WPA,WIFICIPHER_NOPASS,WIFICIPHER_INVALID
  11. }
  12. //構造函數
  13. publicWifiConnect(WifiManagerwifiManager)
  14. {
  15. this.wifiManager=wifiManager;
  16. }
  17. //打開wifi功能
  18. privatebooleanopenWifi()
  19. {
  20. booleanbRet=true;
  21. if(!wifiManager.isWifiEnabled())
  22. {
  23. bRet=wifiManager.setWifiEnabled(true);
  24. }
  25. returnbRet;
  26. }
  27. //提供一個外部介面,傳入要連接的無線網
  28. publicbooleanconnect(StringSSID,StringPassword,WifiCipherTypeType)
  29. {
  30. if(!this.openWifi())
  31. {
  32. returnfalse;
  33. }
  34. //開啟wifi功能需要一段時間(我在手機上測試一般需要1-3秒左右),所以要等到wifi
  35. //狀態變成WIFI_STATE_ENABLED的時候才能執行下面的語句
  36. //WifiManager.WIFI_STATE_ENABLING2
  37. //WifiManager.WIFI_STATE_ENABLED3
  38. System.out.println("wifiManager.getWifiState()"+wifiManager.getWifiState());
  39. while(wifiManager.getWifiState()==WifiManager.WIFI_STATE_ENABLING)
  40. {
  41. System.out.println("wifiManager.getWifiState"+wifiManager.getWifiState());
  42. try{
  43. //為了避免程序一直while循環,讓它睡個100毫秒在檢測……
  44. Thread.currentThread();
  45. Thread.sleep(100);
  46. }
  47. catch(InterruptedExceptionie){
  48. }
  49. }
  50. WifiConfigurationwifiConfig=this.createWifiInfo(SSID,Password,Type);
  51. //
  52. if(wifiConfig==null)
  53. {
  54. returnfalse;
  55. }
  56. WifiConfigurationtempConfig=this.isExsits(SSID);
  57. if(tempConfig!=null)
  58. {
  59. wifiManager.removeNetwork(tempConfig.networkId);
  60. }
  61. intnetID=wifiManager.addNetwork(wifiConfig);
  62. booleanbRet=wifiManager.enableNetwork(netID,false);
  63. returnbRet;
  64. }
  65. //查看以前是否也配置過這個網路
  66. (StringSSID)
  67. {
  68. List<WifiConfiguration>existingConfigs=wifiManager.getConfiguredNetworks();
  69. for(:existingConfigs)
  70. {
  71. if(existingConfig.SSID.equals("""+SSID+"""))
  72. {
  73. returnexistingConfig;
  74. }
  75. }
  76. returnnull;
  77. }
  78. (StringSSID,StringPassword,WifiCipherTypeType)
  79. {
  80. WifiConfigurationconfig=newWifiConfiguration();
  81. config.allowedAuthAlgorithms.clear();
  82. config.allowedGroupCiphers.clear();
  83. config.allowedKeyManagement.clear();
  84. config.allowedPairwiseCiphers.clear();
  85. config.allowedProtocols.clear();
  86. config.SSID="""+SSID+""";
  87. if(Type==WifiCipherType.WIFICIPHER_NOPASS)
  88. {
  89. config.wepKeys[0]="""+""";;
  90. config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
  91. config.wepTxKeyIndex=0;
  92. //或者下面兩段代碼也可以
  93. //config.hiddenSSID=true;
  94. //config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
  95. }
  96. elseif(Type==WifiCipherType.WIFICIPHER_WEP)
  97. {
  98. config.wepKeys[0]="""+Password+""";
  99. config.hiddenSSID=true;
  100. config.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.SHARED);
  101. config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
  102. config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
  103. config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40);
  104. config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP104);
  105. config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
  106. config.wepTxKeyIndex=0;
  107. }
  108. elseif(Type==WifiCipherType.WIFICIPHER_WPA)
  109. {
  110. config.preSharedKey="""+Password+""";
  111. config.hiddenSSID=true;
  112. config.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN);
  113. config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
  114. config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
  115. config.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);
  116. //config.allowedProtocols.set(WifiConfiguration.Protocol.WPA);//這句好像不行
  117. config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
  118. config.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);
  119. config.status=WifiConfiguration.Status.ENABLED;
  120. }
  121. else
  122. {
  123. returnnull;
  124. }
  125. returnconfig;
  126. }
  127. }
  128. </span>

② 連接wifi 的api

Windows下請參見

http://msdn.microsoft.com/en-us/library/windows/desktop/aa816369(v=vs.85).aspx

Linux下
http://stackoverflow.com/questions/400240/how-can-i-get-a-list-of-available-wireless-networks-on-linux

③ 小米2S手機WLAN API怎麼填

你好。

親,連接WIFI的時候不需要填寫,直接輸入密碼就可以連接WIFI,www.miui.com

④ 為什麼百度地圖javascript api 在wifi 情況下不能調用,在4g流量下可以正常訪問

wifi網路問題

⑤ 電腦用了APIWIFI自設wifi,手機收到WIFI了,也可以上網,可是手機進入SUPERMEMO上IMPORT/EXPORT還是顯示不

在同一環境下,應該是設置的問題

⑥ 目前IOS API中關於搜索wifi熱點的API是否全是私有的

您好,我在別的論壇也看到您的問題,很高興為您解答:

自動搜索wifi熱點,都基於MobileApple80211框架來進行開發。

而目前該框架貌似成為了私有框架,期中的API均成為私有API。

轉載,僅供參考。如果我的回答沒能幫助您,請繼續追問。

⑦ 安卓API在未連接wifi的情況下如何獲取該wifi的mac地址,有代碼最好

&#47;&#47;遍歷掃描wifi信號集合;inyourcasehererestltListfor(ScanResultresult:restltList){&#47;&#47;列印每熱點SSIDSystem.out.println(result.SSID);}ScanResult象存放單線熱點各基本信息SSIDBSSIDlevelfrequency等等eim

⑧ 啟用W API是什麼意思

啟用wapi是手機連接無線區域網時的一項可選功能選項。
開啟它可以提高使用無線網路的安全,增強wifi網路的安全性。但對於一般的手機用戶,開啟wapi的功能對日常生活的上網娛樂、學習影響不大。
wapi是無線網中的一種傳輸協議,狹義的wapi是指一種waln的安全機制,和802.11i的作用一樣。廣義的wapi是指中國的無線區域網標准。