现在的位置: 首页 > 移动开发 > 正文

Android Wifi方法大全

2019年06月06日 移动开发 ⁄ 共 4104字 ⁄ 字号 评论关闭

首先需要强调一点的是wifi只能在真机上测试!

在Android里,所有的wifi操作都在android.net.wifi包里,而常用的类也就只用几个,对于一般的开发人员来说,常用的操作也是有限的,不需要刻意的去记,用的时候现查就ok了,下面是《Android应用开发揭秘》里面关于wifi的范例,个人感觉还挺齐全,跟大家分享一下!

[java] view
plain
copy

  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.     //扫描出的网络连接列表  
  16.     private List<ScanResult> mWifiList;  
  17.     //网络连接列表  
  18.     private List<WifiConfiguration> mWifiConfiguration;  
  19.     //定义一个WifiLock  
  20.     WifiLock mWifiLock;  
  21.     //构造器  
  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.     //关闭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.         //判断时候锁定  
  55.         if (mWifiLock.isHeld())  
  56.         {  
  57.             mWifiLock.acquire();  
  58.         }  
  59.     }  
  60.     //创建一个WifiLock  
  61.     public void CreatWifiLock()  
  62.     {  
  63.         mWifiLock = mWifiManager.createWifiLock("Test");  
  64.     }  
  65.     //得到配置好的网络  
  66.     public List<WifiConfiguration> GetConfiguration()  
  67.     {  
  68.         return mWifiConfiguration;  
  69.     }  
  70.     //指定配置好的网络进行连接  
  71.     public void ConnectConfiguration(int index)  
  72.     {  
  73.         //索引大于配置好的网络索引返回  
  74.         if(index > mWifiConfiguration.size())  
  75.         {  
  76.             return;  
  77.         }  
  78.         //连接配置好的指定ID的网络  
  79.         mWifiManager.enableNetwork(mWifiConfiguration.get(index).networkId, true);  
  80.     }  
  81.     public void StartScan()  
  82.     {  
  83.         mWifiManager.startScan();  
  84.         //得到扫描结果  
  85.         mWifiList = mWifiManager.getScanResults();  
  86.         //得到配置好的网络连接  
  87.         mWifiConfiguration = mWifiManager.getConfiguredNetworks();  
  88.     }  
  89.     //得到网络列表  
  90.     public List<ScanResult> GetWifiList()  
  91.     {  
  92.         return mWifiList;  
  93.     }  
  94.     //查看扫描结果  
  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信息转换成一个字符串包  
  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.     //得到接入点的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.     //添加一个网络并连接  
  134.     public void AddNetwork(WifiConfiguration wcg)  
  135.     {  
  136.         int wcgID = mWifiManager.addNetwork(wcg);   
  137.         mWifiManager.enableNetwork(wcgID, true);   
  138.     }  
  139.     //断开指定ID的网络  
  140.     public void DisconnectWifi(int netId)  
  141.     {  
  142.         mWifiManager.disableNetwork(netId);  
  143.         mWifiManager.disconnect();  
  144.     }  
  145. }  

抱歉!评论已关闭.