1. 程式人生 > >Androin學習筆記二十四:wifi連線操作

Androin學習筆記二十四:wifi連線操作

在這篇文章中,作者定義了一個wifi工具類,其中存在著操作wifi的各種方法,其中有一些錯誤我以改正,正確的程式碼如下(建立一個名為WifiAdmin.Java的檔案,以下程式碼中沒有包宣告和import,請自行新增):

  1. publicclass WifiAdmin {   
  2.     // 定義WifiManager物件  
  3.     private WifiManager mWifiManager;   
  4.     // 定義WifiInfo物件  
  5.     private WifiInfo mWifiInfo;   
  6.     // 掃描出的網路連線列表  
  7.     private
     List<ScanResult> mWifiList;   
  8.     // 網路連線列表  
  9.     private List<WifiConfiguration> mWifiConfiguration;   
  10.     // 定義一個WifiLock  
  11.     WifiLock mWifiLock;   
  12.     // 構造器  
  13.     public WifiAdmin(Context context) {   
  14.         // 取得WifiManager物件  
  15.         mWifiManager = (WifiManager) context   
  16.                 .getSystemService(Context.WIFI_SERVICE);   
  17.         // 取得WifiInfo物件  
  18.         mWifiInfo = mWifiManager.getConnectionInfo();   
  19.     }   
  20.     // 開啟WIFI  
  21.     publicvoid openWifi() {   
  22.         if (!mWifiManager.isWifiEnabled()) {   
  23.             mWifiManager.setWifiEnabled(true);   
  24.         }   
  25.     }   
  26.     // 關閉WIFI  
  27.     publicvoid closeWifi() {   
  28.         if (mWifiManager.isWifiEnabled()) {   
  29.             mWifiManager.setWifiEnabled(false);   
  30.         }   
  31.     }   
  32.     // 檢查當前WIFI狀態  
  33.     publicint checkState() {   
  34.         return mWifiManager.getWifiState();   
  35.     }   
  36.     // 鎖定WifiLock  
  37.     publicvoid acquireWifiLock() {   
  38.         mWifiLock.acquire();   
  39.     }   
  40.     // 解鎖WifiLock  
  41.     publicvoid releaseWifiLock() {   
  42.         // 判斷時候鎖定  
  43.         if (mWifiLock.isHeld()) {   
  44.             mWifiLock.acquire();   
  45.         }   
  46.     }   
  47.     // 建立一個WifiLock  
  48.     publicvoid creatWifiLock() {   
  49.         mWifiLock = mWifiManager.createWifiLock("Test");   
  50.     }   
  51.     // 得到配置好的網路  
  52.     public List<WifiConfiguration> getConfiguration() {   
  53.         return mWifiConfiguration;   
  54.     }   
  55.     // 指定配置好的網路進行連線  
  56.     publicvoid connectConfiguration(int index) {   
  57.         // 索引大於配置好的網路索引返回  
  58.         if (index > mWifiConfiguration.size()) {   
  59.             return;   
  60.         }   
  61.         // 連線配置好的指定ID的網路  
  62.         mWifiManager.enableNetwork(mWifiConfiguration.get(index).networkId,   
  63.                 true);   
  64.     }   
  65.     publicvoid startScan() {   
  66.         mWifiManager.startScan();   
  67.         // 得到掃描結果  
  68.         mWifiList = mWifiManager.getScanResults();   
  69.         // 得到配置好的網路連線  
  70.         mWifiConfiguration = mWifiManager.getConfiguredNetworks();   
  71.     }   
  72.     // 得到網路列表  
  73.     public List<ScanResult> getWifiList() {   
  74.         return mWifiList;   
  75.     }   
  76.     // 檢視掃描結果  
  77.     public StringBuilder lookUpScan() {   
  78.         StringBuilder stringBuilder = new StringBuilder();   
  79.         for (int i = 0; i < mWifiList.size(); i++) {   
  80.             stringBuilder   
  81.                     .append("Index_" + new Integer(i + 1).toString() + ":");   
  82.             // 將ScanResult資訊轉換成一個字串包  
  83.             // 其中把包括:BSSID、SSID、capabilities、frequency、level  
  84.             stringBuilder.append((mWifiList.get(i)).toString());   
  85.             stringBuilder.append("/n");   
  86.         }   
  87.         return stringBuilder;   
  88.     }  
  89.     // 得到MAC地址  
  90.     public String getMacAddress() {   
  91.         return (mWifiInfo == null) ? "NULL" : mWifiInfo.getMacAddress();   
  92.     }   
  93.     // 得到接入點的BSSID  
  94.     public String getBSSID() {   
  95.         return (mWifiInfo == null) ? "NULL" : mWifiInfo.getBSSID();   
  96.     }   
  97.     // 得到IP地址  
  98.     publicint getIPAddress() {   
  99.         return (mWifiInfo == null) ? 0 : mWifiInfo.getIpAddress();   
  100.     }   
  101.     // 得到連線的ID  
  102.     publicint getNetworkId() {   
  103.         return (mWifiInfo == null) ? 0 : mWifiInfo.getNetworkId();   
  104.     }   
  105.     // 得到WifiInfo的所有資訊包  
  106.     public String getWifiInfo() {   
  107.         return (mWifiInfo == null) ? "NULL" : mWifiInfo.toString();   
  108.     }   
  109.     // 新增一個網路並連線  
  110.     publicvoid addNetwork(WifiConfiguration wcg) {   
  111.      int wcgID = mWifiManager.addNetwork(wcg);   
  112.      boolean b =  mWifiManager.enableNetwork(wcgID, 

    相關推薦

    Androin學習筆記wifi連線操作

    在這篇文章中,作者定義了一個wifi工具類,其中存在著操作wifi的各種方法,其中有一些錯誤我以改正,正確的程式碼如下(建立一個名為WifiAdmin.Java的檔案,以下程式碼中沒有包宣告和import,請自行新增): publ

    EF6學習筆記事務

    lba security laptop date 簡單的 nbsp sed als 詳細 要專業系統地學習EF推薦《你必須掌握的Entity Framework 6.x與Core 2.0》。這本書作者(汪鵬,Jeffcky)的博客:https://www.cnblogs.c

    Java基礎學習筆記 MySQL安裝圖解

    password data 默認 count 重新 doc documents tran xp系統 、MYSQL的安裝 1、打開下載的mysql安裝文件mysql-5.5.27-win32.zip,雙擊解壓縮,運行“setup.exe”。

    Java學習筆記:Java中的Object類

    div equals int 父類 false info nim TE 操作 Java中的Object類 一:什麽是Object類;   Object類是所有類的父類,相當於所有類的老祖宗,如果一個類沒有使用extends關鍵字明確標識繼承另外一個類,那麽這個類

    論文閱讀筆記Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition(SPPNet CVPR2014)

    分享圖片 介紹 bin con strong map com 提高 https 論文源址:https://arxiv.org/abs/1406.4729 tensorflow相關代碼:https://github.com/peace195/sppnet 摘要

    opencv學習筆記SIFT特徵點檢測與匹配

    SIFT(Scale-invariant feature transform)是一種檢測區域性特徵的演算法,該演算法通過求一幅圖中的特徵點(interest points,or corner points)及其有關scale 和 orientation 的描述子得到特徵並進行

    【Unity 3D】學習筆記遊戲元素——常用編輯器元件

    常用編輯器元件 unity的特色之一就是編輯器視覺化,很多常用的功能都可以在編輯器中完成。常用的編輯器可分為兩種:原有元件和拓展元件。原有元件是編輯器原生的一些功能,拓展元件是編輯器智商通過指令碼拓展的新功能。 攝像機 攝像機是unity最為核心元件之一,遊戲介面中顯示的

    Maven 學習筆記Maven倉庫(快照版本)

     Maven倉庫(快照版本) ---------- 在Maven的世界中,任何一個專案或者構件都必須有自己的版本。版本的值可能是1.0.0,1.3-alpha-4,2.0,2.1-SNAPSHOT或者2.1-20091214.221414-13。其中,1.0、1.3-a

    《Javascript權威指南》學習筆記JavaScript內建類

        前面的幾篇博文分別介紹了物件、字串、陣列、日期等內建類,本篇將介紹Boolean/Math/Function/Arguments類 一、使用Boolean類處理邏輯值     Boolean

    kubernetes學習筆記helm入門

    1.Helm的簡介 Helm是Kubernetes的一個包管理工具,用來簡化Kubernetes應用的部署和管理。可以把Helm比作CentOS的yum工具。 Helm有如下幾個基本概念: Chart: 是Helm管理的安裝包,裡面包含需要部署的安裝包資源。可以把Chart比作CentOS yum使

    Java Web 學習筆記RestEasy新增Filter過濾器預處理請求

    RestEasy新增Filter過濾器預處理請求 前提 定義filter過濾器,預處理http請求 在resteasy框架下配置filter 實現功能 攔截http請求,獲取請求頭中的

    EF6學習筆記格式化日誌輸出

    exec https edi 進行 mman sel 能夠 database container 要專業系統地學習EF推薦《你必須掌握的Entity Framework 6.x與Core 2.0》。這本書作者(汪鵬,Jeffcky)的博客:https://www.cnblo

    EF6學習筆記分布式事務

    db2 分享 rect dtc 發現 fck row ffd 類型 要專業系統地學習EF推薦《你必須掌握的Entity Framework 6.x與Core 2.0》。這本書作者(汪鵬,Jeffcky)的博客:https://www.cnblogs.com/CreateMy

    EF6學習筆記連接彈性

    相同 fck master tel 學習筆記 mage ber 個數 azure 要專業系統地學習EF推薦《你必須掌握的Entity Framework 6.x與Core 2.0》。這本書作者(汪鵬,Jeffcky)的博客:https://www.cnblogs.com/C

    C#回顧學習筆記程式設計師必備技能,除錯

    編寫程式碼免不了會出現各種錯誤,在執行時會發現不是拋異常就是執行結果跟預期結果有差異。這時候就需要思考如何去解決這個問題。 首先應該清楚一點:程式碼都是從頭開始,一句一句往下執行。程式設計師在發現程式碼有問題時,首先要想到的就是,這個錯誤可能發生在第幾句程式碼。有經驗的程式

    python 學習筆記 資料庫連線

    #!/usr/bin/python # -*- coding: utf-8 -*- from __future__ import print_function import Queue import pymysql import logging LOG =

    【OS學習筆記 保護模式段描述符

    上一篇文章初步進入保護模式的學習。首先學習了全域性描述符表GDT。點選連結檢視上一篇文章:全域性描述符表 本篇文章繼續學習,GDT中存放的條目:描述符,確切的說是段描述符。學習段描述符的作用以及段描述符的格式。 1、段描述符的格式 真實模式和保護模式,在記憶體訪問上是由區別的

    我的openwrt學習筆記WIFI 無線傳輸速率測試-iperf

    Iperf是一個TCP/IP和UDP/IP的效能測量工具,能夠提供網路吞吐率資訊,以及震動、丟包率、最大段和最大傳輸單元大小等統計資訊;從而能夠幫助我們測試網路效能,定位網路瓶頸。 現在ubuntu單虛擬機器不同終端以及不同虛擬機器之間的測試為例說明如何安裝以及使用,然後提

    Java框架spring Boot學習筆記log4j介紹

    inf alt 技術分享 images 使用 image 詳細 配置文件 -128 功能 日誌功能,通過log4j可以看到程序運行過程的詳細信息。 使用 導入log4j的jar包 復制log4j的配置文件,復制到src下面         3.設置日誌級別    

    Hulu機器學習問題與解答系列 | 隨機梯度下降法

    叠代 -s nbsp xib 大量 步長 空間 圖片 ges Hulu優秀的作者們每天和公式抗爭,只為提升你們的技能,感動的話就把文章看完,然後哭一個吧。 今天的內容是 【隨機梯度下降法】 場景描述 深度學習得以在近幾年迅速占領工業界和學術界的高地,重要原因之一是數