Android Wifi方法大全

來源:互聯網
上載者:User

首先需要強調一點的是wifi只能在真機上測試!

在Android裡,所有的wifi操作都在android.net.wifi包裡,而常用的類也就只用幾個,對於一般的開發人員來說,常用的操作也是有限的,不需要刻意的去記,用的時候現查就ok了,下面是《Android應用開發揭秘》裡面關於wifi的範例,個人感覺還挺齊全,跟大家分享一下!

 

package com.yarin.android.Examples_08_08;<br />import java.util.List;<br />import android.content.Context;<br />import android.net.wifi.ScanResult;<br />import android.net.wifi.WifiConfiguration;<br />import android.net.wifi.WifiInfo;<br />import android.net.wifi.WifiManager;<br />import android.net.wifi.WifiManager.WifiLock;<br />public class WifiAdmin<br />{<br /> //定義WifiManager對象<br /> private WifiManager mWifiManager;<br /> //定義WifiInfo對象<br /> private WifiInfo mWifiInfo;<br /> //掃描出的網路連接列表<br /> private List<ScanResult> mWifiList;<br /> //網路連接列表<br /> private List<WifiConfiguration> mWifiConfiguration;<br /> //定義一個WifiLock<br /> WifiLock mWifiLock;<br /> //構造器<br /> public WifiAdmin(Context context)<br /> {<br /> //取得WifiManager對象<br /> mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);<br /> //取得WifiInfo對象<br /> mWifiInfo = mWifiManager.getConnectionInfo();<br /> }<br /> //開啟WIFI<br /> public void OpenWifi()<br /> {<br /> if (!mWifiManager.isWifiEnabled())<br /> {<br /> mWifiManager.setWifiEnabled(true); </p><p> }<br /> }<br /> //關閉WIFI<br /> public void CloseWifi()<br /> {<br /> if (!mWifiManager.isWifiEnabled())<br /> {<br /> mWifiManager.setWifiEnabled(false);<br /> }<br /> }<br /> //鎖定WifiLock<br /> public void AcquireWifiLock()<br /> {<br /> mWifiLock.acquire();<br /> }<br /> //解鎖WifiLock<br /> public void ReleaseWifiLock()<br /> {<br /> //判斷時候鎖定<br /> if (mWifiLock.isHeld())<br /> {<br /> mWifiLock.acquire();<br /> }<br /> }<br /> //建立一個WifiLock<br /> public void CreatWifiLock()<br /> {<br /> mWifiLock = mWifiManager.createWifiLock("Test");<br /> }<br /> //得到配置好的網路<br /> public List<WifiConfiguration> GetConfiguration()<br /> {<br /> return mWifiConfiguration;<br /> }<br /> //指定配置好的網路進行串連<br /> public void ConnectConfiguration(int index)<br /> {<br /> //索引大於配置好的網路索引返回<br /> if(index > mWifiConfiguration.size())<br /> {<br /> return;<br /> }<br /> //串連配置好的指定ID的網路<br /> mWifiManager.enableNetwork(mWifiConfiguration.get(index).networkId, true);<br /> }<br /> public void StartScan()<br /> {<br /> mWifiManager.startScan();<br /> //得到掃描結果<br /> mWifiList = mWifiManager.getScanResults();<br /> //得到配置好的網路連接<br /> mWifiConfiguration = mWifiManager.getConfiguredNetworks();<br /> }<br /> //得到網路列表<br /> public List<ScanResult> GetWifiList()<br /> {<br /> return mWifiList;<br /> }<br /> //查看掃描結果<br /> public StringBuilder LookUpScan()<br /> {<br /> StringBuilder stringBuilder = new StringBuilder();<br /> for (int i = 0; i < mWifiList.size(); i++)<br /> {<br /> stringBuilder.append("Index_"+new Integer(i + 1).toString() + ":");<br /> //將ScanResult資訊轉換成一個字串包<br /> //其中把包括:BSSID、SSID、capabilities、frequency、level<br /> stringBuilder.append((mWifiList.get(i)).toString());<br /> stringBuilder.append("/n");<br /> }<br /> return stringBuilder;<br /> }<br /> //得到MAC地址<br /> public String GetMacAddress()<br /> {<br /> return (mWifiInfo == null) ? "NULL" : mWifiInfo.getMacAddress();<br /> }<br /> //得到存取點的BSSID<br /> public String GetBSSID()<br /> {<br /> return (mWifiInfo == null) ? "NULL" : mWifiInfo.getBSSID();<br /> }<br /> //得到IP地址<br /> public int GetIPAddress()<br /> {<br /> return (mWifiInfo == null) ? 0 : mWifiInfo.getIpAddress();<br /> }<br /> //得到串連的ID<br /> public int GetNetworkId()<br /> {<br /> return (mWifiInfo == null) ? 0 : mWifiInfo.getNetworkId();<br /> }<br /> //得到WifiInfo的所有資訊包<br /> public String GetWifiInfo()<br /> {<br /> return (mWifiInfo == null) ? "NULL" : mWifiInfo.toString();<br /> }<br /> //添加一個網路並串連<br /> public void AddNetwork(WifiConfiguration wcg)<br /> {<br /> int wcgID = mWifiManager.addNetwork(wcg);<br /> mWifiManager.enableNetwork(wcgID, true);<br /> }<br /> //斷開指定ID的網路<br /> public void DisconnectWifi(int netId)<br /> {<br /> mWifiManager.disableNetwork(netId);<br /> mWifiManager.disconnect();<br /> }<br />}

 

裡面注釋寫的很詳細,我就不解釋了,什麼時候用到了,到這裡一找就ok了!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.