<style id="7i3y3"></style>

      <sub id="7i3y3"><i id="7i3y3"></i></sub>

        午夜精品一区二区三区成人,中文字幕av一区二区,亚洲AVAV天堂AV在线网阿V,肥臀浪妇太爽了快点再快点,国产网友愉拍精品视频手机,国产精品无码a∨麻豆,久久中文字幕一区二区,a级国产乱理伦片在线观看al
        首頁 新聞 工控搜 論壇 廠商論壇 產品 方案 廠商 人才 文摘 下載 展覽
        中華工控網首頁
          P L C | 變頻器與傳動 | 傳感器 | 現場檢測儀表 | 工控軟件 | 人機界面 | 運動控制
          D C S | 工業以太網 | 現場總線 | 顯示調節儀表 | 數據采集 | 數傳測控 | 工業安全
          電 源 | 嵌入式系統 | PC based | 機柜箱體殼體 | 低壓電器 | 機器視覺
        收藏本文     查看收藏

        安卓版本:4.4.2 運行平臺:廣州微嵌安卓工業平板
        這里寫圖片描述
        1、安卓使用wifi模塊需在AndroidMainfest.xml聲明權限:

        允許程序改變Wi-Fi連接狀態 <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/> 允許程序訪問Wi-Fi網絡狀態信息 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>

        2、獲取WifiManager的實例,用于操作wifi:

        wifiManager = (WifiManager)getSystemService(Service.WIFI_SERVICE);

        3、打開或關閉wifi

        //isChecked為true表示打開wifi,false關閉WiFi if(!wifiManager.wifiEnable(isChecked)) { Toast.makeText(MainActivity.this,"WifisetEnabledfaled", Toast.LENGTH_SHORT).show();; } //獲取WiFi當前的狀態 switch(wifiManager.getWifiState()) { //wifi處于關閉狀態 case WifiManager.WIFI_STATE_DISABLED: enableSwitch.setChecked(false); break; //wifi處于打開狀態 case WifiManager.WIFI_STATE_ENABLED: enableSwitch.setChecked(true); //該方法用于開始掃描附近的wifi熱點 wifiManager.startScan(); break; }

        4、注冊wifi的相應廣播監聽wifi的狀態改變:

        //掃描到可用的wifi熱點 WifiManager.SCAN_RESULTS_AVAILABLE_ACTION //wifi狀態改變 WifiManager.WIFI_STATE_CHANGED_ACTION //wifi請求連接成功或失敗 WifiManager.SUPPLICANT_STATE_CHANGED_ACTION //wifi連接或斷開狀態改變, ConnectivityManager.CONNECTIVITY_ACTION //wifi熱點狀態改變 "android.net.wifi.WIFI_AP_STATE_CHANGED" 定義BroadcastReceiver接收廣播: class WifiReceiver extends BroadcastReceiver { public void onReceive(Context context, Intent intent) { //掃描到可用熱點 if (intent.getAction().equals( WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)) { //獲取最近一次掃描到的wifi列表 resultList = wifiManager.getScanResults(); String[] result = mywifi.getString(resultList); int i=0; for(ScanResult scan:resultList){ //判斷是否已保存了連接信息 if(mywifi.isSaveConfigtion(scan.SSID)!=null){ result[i] += ":已保存"; } i++; } } //wifi或熱點的狀態發生改變 else if(intent.getAction() .equals(WifiManager.WIFI_STATE_CHANGED_ACTION)|| intent.getAction() .equals("android.net.wifi.WIFI_AP_STATE_CHANGED")) { //獲取wifi或熱點當前的狀態 switch(intent.getIntExtra("wifi_state", 0)){ //wifi狀態變成關閉 case 1: adapter.clear(); stateText.setText("Wifi已關閉"); break; //WiFi狀態變成打開 case 3: stateText.setText("Wifi已打開"); break; //熱點狀態變成打開 case 13 apstateText.setText("熱點已打開"); break; //熱點狀態變成關閉 case 11: apstateText.setText("熱點已關閉"); break; default: Log.d("STATE",String.valueOf(intent.getIntExtra("wifi_state", 0))); break; } } //連接狀態發生改變 else if(intent.getAction().equals(ConnectivityManager.CONNECTIVITY_ACTION)) { boolean b = false; //獲取當前的連接狀態 boolean a = intent.getBooleanExtra("noConnectivity", b); if(!a) { //wifi連接成功,獲取連接的wifi屬性 System.out.println("連接成功"); } else { //wifi已斷開連接 System.out.println("斷開連接"); } } //wifi連接請求成功或失敗 else if(intent.getAction().equals(WifiManager.SUPPLICANT_STATE_CHANGED_ACTION)) { //獲取連接wifi屬性跟請求連接狀態 WifiInfo info = wifiManager.getConnectionInfo(); SupplicantState state = info.getSupplicantState(); int flag =0; boolean connectflag = false; //連接請求成功 if (state == SupplicantState.COMPLETED) { Log.i("WifiReceiver", "(驗證成功)"); SSIDText.setText(info.getSSID().substring(1,info.getSSID().length()-1)); //保存連接wifi信息 wifiManager.saveConfiguration(); flag =1; } //獲取請求失敗的錯誤值,判斷是否屬于驗證失敗 int errorCode = intent.getIntExtra( WifiManager.EXTRA_SUPPLICANT_ERROR, -1); if (errorCode == WifiManager.ERROR_AUTHENTICATING) { Log.i("WifiReceiver", "(驗證失敗)"); } } } }

        5、在掃描到wifi后獲取wifi的具體屬性:

        //參數:掃描到的wifi列表 public String[] getString(List<ScanResult> wifiList) { ArrayList<String> listStr = new ArrayList<String>(); for (int i = 0; i < wifiList.size(); i++) { /*SSID:wifi的標示符,也就是名字 *capabilities:描述接入點支持的身份驗證、密鑰管理和加密方案 *level:wifi的信號強度 *WifiManager.calculateSignalLevel:將信號強度轉換成信號等級 */ listStr.add(scan.SSID+":" +scan.capabilities+":" +String.valueOf(WifiManager.calculateSignalLevel(scan.level, 5))); } return listStr.toArray(new String[0]); }

        6、獲取當前wifi連入點的一些常用信息

        WifiInfo connectInfo = wifiManager.getConnectionInfo(); //連接wifi的名字 connectInfo.getSSID(); //wifi的連接速度跟單位 connectInfo.getLinkSpeed(); connectInfo.LINK_SPEED_UNITS; //連接wifi的ip地址 connectInfo.getIpAddress(); //用下面的轉換方法將connectInfo.getIpAddress()轉換成String public String intToIp(int i) {return ((i >> 24 ) & 0xFF ) + "." + ((i >> 16 ) & 0xFF) + "." + ((i >> 8 ) & 0xFF) + "." + ( i & 0xFF) ; }

        7、創建wifi信息用于wifi連接,分為無密碼、WPA兩種:

        /*無密碼連接: *SSID:wifi的標識符 *config:用于wifi連接的wifi信息 */ String SSID = ssid; WifiConfiguration config = new WifiConfiguration(); config.allowedAuthAlgorithms.clear(); config.allowedGroupCiphers.clear(); config.allowedKeyManagement.clear(); config.allowedPairwiseCiphers.clear(); config.allowedProtocols.clear(); config.SSID = "\"" + SSID + "\""; config.allowedAuthAlgorithms .set(WifiConfiguration.AuthAlgorithm.SHARED); config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP); config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP); config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40); config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP104); config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE); /*有密碼連接: *SSID:wifi的標識符 *password:wifi密碼 *config:用于wifi連接的wifi信息 */ String gol_password = password; WifiConfiguration config = new WifiConfiguration(); config.SSID = "\"" + ssid + "\""; config.preSharedKey = "\"" + gol_password + "\""; config.hiddenSSID = true; config.status = WifiConfiguration.Status.ENABLED; config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP); config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP); config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK); config.allowedPairwiseCiphers .set(WifiConfiguration.PairwiseCipher.TKIP); config.allowedPairwiseCiphers .set(WifiConfiguration.PairwiseCipher.CCMP); config.allowedProtocols.set(WifiConfiguration.Protocol.RSN); //使用上面新建的WifiConfiguration config連接wifi: int wcgID = wifiManager.addNetwork(wifiConfig); //連接成功返回true,失敗返回false boolean flag = wifiManager.enableNetwork(wcgID, true);

        8、wifi斷開連接:

        //SSID:wifi的標示符 public boolean disconnectWifi(String SSID) { List<WifiConfiguration> existingConfigs = null; existingConfigs = wifiManager.getConfiguredNetworks();; for (WifiConfiguration existingConfig : existingConfigs) { if (existingConfig.SSID.equals("\"" + SSID + "\"")) { if(wifiManager.disableNetwork(existingConfig.networkId)) { return true; }else break; } } return false; }

        9、判斷wifi信息是否已保存:

        public WifiConfiguration isSaveConfigtion(String SSID) { List <WifiConfiguration> existingConfigs = null; existingConfigs = wifiManager.getConfiguredNetworks();; for (WifiConfiguration existingConfig : existingConfigs) { if (existingConfig.SSID.equals("\"" + SSID + "\"")) { return existingConfig; } } return null; }

        10、刪除保存的wifi信息:

        public boolean removeWifi(String SSID) { List<WifiConfiguration> existingConfigs; existingConfigs= wifiManager.getConfiguredNetworks(); for (WifiConfiguration existingConfig : existingConfigs) { if (existingConfig.SSID.equals("\"" + SSID + "\"")) { return wifiManager.removeNetwork(existingConfig.networkId); } } return false; }

        至此wifi的打開、關閉、掃描、連接、斷開等基本功能的開發就基本結束了,但是在日常的wifi使用中,我們不僅僅只是連接熱點,有時也會開啟安卓上的本地熱點供其它安卓設備連接,所以下面的部分就是設置本地的wifi熱點信息并打開等功能。

        11、熱點跟wifi不能同時使用,所以在打開熱點前需先關閉掉wifi

        //先判斷wifi是否處于打開的狀態,如果是則先關閉再打開熱點 if(wifiManager.isWifiEnabled()){ wifiManager.setWifiEnabled(false); Toast.makeText(MainActivity.this, "關閉當前wifi,創建熱點", Toast.LENGTH_SHORT).show(); }

        創建熱點信息:分為有密碼、無密碼

        /*無密碼熱點: *SSID:熱點名字 *config:熱點信息 */ WifiConfiguration config = new WifiConfiguration(); config.SSID = ssid; config.wepTxKeyIndex = 0; config.wepKeys[0] = ""; config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE); config.wepTxKeyIndex = 0; /*有密碼熱點: *SSID:熱點名字 *password:熱點密碼 *config:熱點信息 */ config.hiddenSSID = true; config.preSharedKey = password; config.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN); config.allowedProtocols.set(WifiConfiguration.Protocol.RSN); config.allowedProtocols.set(WifiConfiguration.Protocol.WPA); config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK); config.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP); config.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP); config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP); config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);

        使用上面創建的熱點信息打開熱點

        //config:熱點信息,打開熱點 Method method1 = null; try { method1 = wifiManager.getClass().getMethod("setWifiApEnabled", WifiConfiguration.class, boolean.class); method1.invoke(wifiManager, config, true); } catch (Exception e) { e.printStackTrace(); } //判斷熱點是否處于打開狀態: try { Method method = wifiManager.getClass().getMethod("isWifiApEnabled"); method.setAccessible(true); return (Boolean) method.invoke(wifiManager); } catch (NoSuchMethodException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } //關閉熱點,先判斷熱點是否已被打開,是則關閉 if (isWifiApEnabled(wifiManager)) { Method method = wifiManager.getClass().getMethod("getWifiApConfiguration"); method.setAccessible(true); WifiConfiguration config = (WifiConfiguration) method.invoke(wifiManager); Method method2 =wifiManager.getClass() .getMethod("setWifiApEnabled",WifiConfiguration.class, boolean.class); method2.invoke(wifiManager, config, false); }

        到了這里安卓的wifi使用就已完成了,包括了wifi跟熱點兩大部分,wifi部分主要包括掃描、配置、連接斷開等,熱點部分主要是配置熱點信息并打開。


         

        狀 態: 離線

        公司簡介
        產品目錄

        公司名稱: 廣州市微嵌計算機科技有限公司
        聯 系 人: 李工
        電  話: 020-32206882
        傳  真: 020-32207973
        地  址: 廣東廣州黃埔永和新莊工業園B座
        郵  編: 510630
        主  頁:
         
        該廠商相關技術文摘:
        展頻芯片在Wince平板上的應用
        安卓設備的網絡adb調試設置
        WindowsCE上直接打開avi文件
        金融行業電源保護解決方案之HMI工業平板電腦應用
        更多文摘...
        立即發送詢問信息在線聯系該技術文摘廠商:
        用戶名: 密碼: 免費注冊為中華工控網會員
        請留下您的有效聯系方式,以方便我們及時與您聯絡

        關于我們 | 聯系我們 | 廣告服務 | 本站動態 | 友情鏈接 | 法律聲明 | 不良信息舉報
        工控網客服熱線:0755-86369299
        版權所有 中華工控網 Copyright©2022 Gkong.com, All Rights Reserved

        主站蜘蛛池模板: 亚洲综合日韩av在线| 女同性恋一区二区三区视频 | 久久国产自拍一区二区三区| 亚洲伊人精品久视频国产| 光棍天堂在线手机播放免费| 亚洲成人av在线资源| 亚洲av日韩av一区久久| 国产99在线 | 欧美| 亚洲性夜夜天天天| 欧美丰满少妇xxxx性| XXXXXHD亚洲日本HD| 亚洲精品天堂无码中文字幕| 亚洲欧洲av人一区二区| 亚洲中文一区二区av| 国产亚洲精品超碰热| 韩国精品久久久久久无码| 色欲狠狠躁天天躁无码中文字幕| 狠狠婷婷色五月中文字幕| 狠狠做久久深爱婷婷| 十八禁午夜福利免费网站| 久久成人综合亚洲精品欧美 | 亚洲人成18在线看久| 久久久久国产精品熟女影院| 欧美颜射内射中出口爆在线| 一二三四在线观看高清中文| 成人国产精品一区二区网站公司| 性大毛片视频| 久久综合开心激情五月天| 国产亚洲无线码一区二区| 久久精品免视看成人国产| 亚洲成a人在线播放www| 国产欧美日韩精品第二区| 日韩AV片无码一区二区不卡| 国产私拍大尺度在线视频| 亚洲欧美激情在线一区| 日本一区二区三区精品国产| 日韩欧国产美一区二区在线| 日韩人妻精品中文字幕| 国产成人MV视频在线观看| 电影在线观看+伦理片| 欧美成人综合视频|