標(biāo)題: Android WiFi 應(yīng)用程序例子 [打印本頁]

作者: 51黑科技    時(shí)間: 2016-2-2 02:57
標(biāo)題: Android WiFi 應(yīng)用程序例子
首先需要強(qiáng)調(diào)一點(diǎn)的是wifi只能在真機(jī)上測試!         在Android里,所有的wifi操作都在android.net.wifi包里,而常用的類也就只用幾個(gè),對于一般的開發(fā)人員來說,常用的操作也是有限的,不需要刻意的去記,用的時(shí)候現(xiàn)查就ok了,下面是《Android應(yīng)用開發(fā)揭秘》里面關(guān)于wifi的范例,個(gè)人感覺還挺齊全,跟大家分享一下!
  1.     package com.yarin.android.Examples_08_08;   
  2.     import java.util.List;   
  3.     import android.content.Context;   
  4.     import android.net.wifi.ScanResult;   
  5.     import android.net.wifi.WifiConfiguration;   
  6.     import android.net.wifi.WifiInfo;   
  7.     import android.net.wifi.WifiManager;   
  8.     import android.net.wifi.WifiManager.WifiLock;   
  9.     public class WifiAdmin   
  10.     {   
  11.         //定義WifiManager對象     
  12.         private WifiManager mWifiManager;   
  13.         //定義WifiInfo對象     
  14.         private WifiInfo mWifiInfo;   
  15.         //掃描出的網(wǎng)絡(luò)連接列表     
  16.         private List<ScanResult> mWifiList;   
  17.         //網(wǎng)絡(luò)連接列表     
  18.         private List<WifiConfiguration> mWifiConfiguration;   
  19.         //定義一個(gè)WifiLock     
  20.         WifiLock mWifiLock;   
  21.         //構(gòu)造器     
  22.         public  WifiAdmin(Context context)   
  23.         {   
  24.             //取得WifiManager對象     
  25.             mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);   
  26.             //取得WifiInfo對象     
  27.             mWifiInfo = mWifiManager.getConnectionInfo();   
  28.         }   
  29.         //打開WIFI     
  30.         public void OpenWifi()   
  31.         {   
  32.             if (!mWifiManager.isWifiEnabled())   
  33.             {   
  34.                 mWifiManager.setWifiEnabled(true);   
  35.                     
  36.             }   
  37.         }   
  38.         //關(guān)閉WIFI     
  39.         public void CloseWifi()   
  40.         {   
  41.             if (!mWifiManager.isWifiEnabled())   
  42.             {   
  43.                 mWifiManager.setWifiEnabled(false);     
  44.             }   
  45.         }   
  46.         //鎖定WifiLock     
  47.         public void AcquireWifiLock()   
  48.         {   
  49.             mWifiLock.acquire();   
  50.         }   
  51.         //解鎖WifiLock     
  52.         public void ReleaseWifiLock()   
  53.         {   
  54.             //判斷時(shí)候鎖定     
  55.             if (mWifiLock.isHeld())   
  56.             {   
  57.                 mWifiLock.release();   
  58.             }   
  59.         }   
  60.         //創(chuàng)建一個(gè)WifiLock     
  61.         public void CreatWifiLock()   
  62.         {   
  63.             mWifiLock = mWifiManager.createWifiLock("Test");   
  64.         }   
  65.         //得到配置好的網(wǎng)絡(luò)     
  66.         public List<WifiConfiguration> GetConfiguration()   
  67.         {   
  68.             return mWifiConfiguration;   
  69.         }   
  70.         //指定配置好的網(wǎng)絡(luò)進(jìn)行連接     
  71.         public void ConnectConfiguration(int index)   
  72.         {   
  73.             //索引大于配置好的網(wǎng)絡(luò)索引返回     
  74.             if(index > mWifiConfiguration.size())   
  75.             {   
  76.                 return;   
  77.             }   
  78.             //連接配置好的指定ID的網(wǎng)絡(luò)     
  79.             mWifiManager.enableNetwork(mWifiConfiguration.get(index).networkId, true);   
  80.         }   
  81.         public void StartScan()   
  82.         {   
  83.             mWifiManager.startScan();   
  84.             //得到掃描結(jié)果     
  85.             mWifiList = mWifiManager.getScanResults();   
  86.             //得到配置好的網(wǎng)絡(luò)連接     
  87.             mWifiConfiguration = mWifiManager.getConfiguredNetworks();   
  88.         }   
  89.         //得到網(wǎng)絡(luò)列表     
  90.         public List<ScanResult> GetWifiList()   
  91.         {   
  92.             return mWifiList;   
  93.         }   
  94.         //查看掃描結(jié)果     
  95.         public StringBuilder LookUpScan()   
  96.         {   
  97.             StringBuilder stringBuilder = new StringBuilder();   
  98.             for (int i = 0; i < mWifiList.size(); i++)   
  99.             {   
  100.                 stringBuilder.append("Index_"+new Integer(i + 1).toString() + ":");   
  101.                 //將ScanResult信息轉(zhuǎn)換成一個(gè)字符串包     
  102.                 //其中把包括:BSSID、SSID、capabilities、frequency、level     
  103.                 stringBuilder.append((mWifiList.get(i)).toString());   
  104.                 stringBuilder.append("/n");   
  105.             }   
  106.             return stringBuilder;   
  107.         }   
  108.         //得到MAC地址     
  109.         public String GetMacAddress()   
  110.         {   
  111.             return (mWifiInfo == null) ? "NULL" : mWifiInfo.getMacAddress();   
  112.         }   
  113.         //得到接入點(diǎn)的BSSID     
  114.         public String GetBSSID()   
  115.         {   
  116.             return (mWifiInfo == null) ? "NULL" : mWifiInfo.getBSSID();   
  117.         }   
  118.         //得到IP地址     
  119.         public int GetIPAddress()   
  120.         {   
  121.             return (mWifiInfo == null) ? 0 : mWifiInfo.getIpAddress();   
  122.         }   
  123.         //得到連接的ID     
  124.         public int GetNetworkId()   
  125.         {   
  126.             return (mWifiInfo == null) ? 0 : mWifiInfo.getNetworkId();   
  127.         }   
  128.         //得到WifiInfo的所有信息包     
  129.         public String GetWifiInfo()   
  130.         {   
  131.             return (mWifiInfo == null) ? "NULL" : mWifiInfo.toString();   
  132.         }   
  133.         //添加一個(gè)網(wǎng)絡(luò)并連接     
  134.         public void AddNetwork(WifiConfiguration wcg)   
  135.         {   
  136.             int wcgID = mWifiManager.addNetwork(wcg);     
  137.             mWifiManager.enableNetwork(wcgID, true);     
  138.         }   
  139.         //斷開指定ID的網(wǎng)絡(luò)     
  140.         public void DisconnectWifi(int netId)   
  141.         {   
  142.             mWifiManager.disableNetwork(netId);   
  143.             mWifiManager.disconnect();   
  144.         }   
  145.     }   
復(fù)制代碼








歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1