joozh 发表于 2015-9-30 11:45:44

Android Wifi方法大全

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



view plain
[*]package com.yarin.android.Examples_08_08;
[*]import java.util.List;
[*]import android.content.Context;
[*]import android.net.wifi.ScanResult;
[*]import android.net.wifi.WifiConfiguration;
[*]import android.net.wifi.WifiInfo;
[*]import android.net.wifi.WifiManager;
[*]import android.net.wifi.WifiManager.WifiLock;
[*]public class WifiAdmin
[*]{
[*]    //定义WifiManager对象
[*]    private WifiManager mWifiManager;
[*]    //定义WifiInfo对象
[*]    private WifiInfo mWifiInfo;
[*]    //扫描出的网络连接列表
[*]    private List<ScanResult> mWifiList;
[*]    //网络连接列表
[*]    private List<WifiConfiguration> mWifiConfiguration;
[*]    //定义一个WifiLock
[*]    WifiLock mWifiLock;
[*]    //构造器
[*]    publicWifiAdmin(Context context)
[*]    {
[*]      //取得WifiManager对象
[*]      mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
[*]      //取得WifiInfo对象
[*]      mWifiInfo = mWifiManager.getConnectionInfo();
[*]    }
[*]    //打开WIFI
[*]    public void OpenWifi()
[*]    {
[*]      if (!mWifiManager.isWifiEnabled())
[*]      {
[*]            mWifiManager.setWifiEnabled(true);
[*]            
[*]      }
[*]    }
[*]    //关闭WIFI
[*]    public void CloseWifi()
[*]    {
[*]      if (!mWifiManager.isWifiEnabled())
[*]      {
[*]            mWifiManager.setWifiEnabled(false);   
[*]      }
[*]    }
[*]    //锁定WifiLock
[*]    public void AcquireWifiLock()
[*]    {
[*]      mWifiLock.acquire();
[*]    }
[*]    //解锁WifiLock
[*]    public void ReleaseWifiLock()
[*]    {
[*]      //判断时候锁定
[*]      if (mWifiLock.isHeld())
[*]      {
[*]            mWifiLock.acquire();
[*]      }
[*]    }
[*]    //创建一个WifiLock
[*]    public void CreatWifiLock()
[*]    {
[*]      mWifiLock = mWifiManager.createWifiLock("Test");
[*]    }
[*]    //得到配置好的网络
[*]    public List<WifiConfiguration> GetConfiguration()
[*]    {
[*]      return mWifiConfiguration;
[*]    }
[*]    //指定配置好的网络进行连接
[*]    public void ConnectConfiguration(int index)
[*]    {
[*]      //索引大于配置好的网络索引返回
[*]      if(index > mWifiConfiguration.size())
[*]      {
[*]            return;
[*]      }
[*]      //连接配置好的指定ID的网络
[*]      mWifiManager.enableNetwork(mWifiConfiguration.get(index).networkId, true);
[*]    }
[*]    public void StartScan()
[*]    {
[*]      mWifiManager.startScan();
[*]      //得到扫描结果
[*]      mWifiList = mWifiManager.getScanResults();
[*]      //得到配置好的网络连接
[*]      mWifiConfiguration = mWifiManager.getConfiguredNetworks();
[*]    }
[*]    //得到网络列表
[*]    public List<ScanResult> GetWifiList()
[*]    {
[*]      return mWifiList;
[*]    }
[*]    //查看扫描结果
[*]    public StringBuilder LookUpScan()
[*]    {
[*]      StringBuilder stringBuilder = new StringBuilder();
[*]      for (int i = 0; i < mWifiList.size(); i++)
[*]      {
[*]            stringBuilder.append("Index_"+new Integer(i + 1).toString() + ":");
[*]            //将ScanResult信息转换成一个字符串包
[*]            //其中把包括:BSSID、SSID、capabilities、frequency、level
[*]            stringBuilder.append((mWifiList.get(i)).toString());
[*]            stringBuilder.append("/n");
[*]      }
[*]      return stringBuilder;
[*]    }
[*]    //得到MAC地址
[*]    public String GetMacAddress()
[*]    {
[*]      return (mWifiInfo == null) ? "NULL" : mWifiInfo.getMacAddress();
[*]    }
[*]    //得到接入点的BSSID
[*]    public String GetBSSID()
[*]    {
[*]      return (mWifiInfo == null) ? "NULL" : mWifiInfo.getBSSID();
[*]    }
[*]    //得到IP地址
[*]    public int GetIPAddress()
[*]    {
[*]      return (mWifiInfo == null) ? 0 : mWifiInfo.getIpAddress();
[*]    }
[*]    //得到连接的ID
[*]    public int GetNetworkId()
[*]    {
[*]      return (mWifiInfo == null) ? 0 : mWifiInfo.getNetworkId();
[*]    }
[*]    //得到WifiInfo的所有信息包
[*]    public String GetWifiInfo()
[*]    {
[*]      return (mWifiInfo == null) ? "NULL" : mWifiInfo.toString();
[*]    }
[*]    //添加一个网络并连接
[*]    public void AddNetwork(WifiConfiguration wcg)
[*]    {
[*]      int wcgID = mWifiManager.addNetwork(wcg);   
[*]      mWifiManager.enableNetwork(wcgID, true);   
[*]    }
[*]    //断开指定ID的网络
[*]    public void DisconnectWifi(int netId)
[*]    {
[*]      mWifiManager.disableNetwork(netId);
[*]      mWifiManager.disconnect();
[*]    }
[*]}
  里面注释写的很详细,我就不解释了,什么时候用到了,到这里一找就ok了!
页: [1]
查看完整版本: Android Wifi方法大全