android wifi锁

来源:互联网 发布:怎么修改手机的mac地址 编辑:程序博客网 时间:2024/06/03 15:37

Android 对WIFI电源管理的代码主要在WifiService.Java中。

  如果应用程序想在屏幕被关掉后继续使用WiFi则可以调用 acquireWifiLock来锁住WiFi,该操作会阻止WiFi进入睡眠状态。

  当应用程序不再使用WiFi时需要调用 releaseWifiLock来释放WiFi。之后WiFi可以进入睡眠状态以节省电源。 

  默认情况下当屏幕被关掉以后,如果没有应用程序在使用WiFi,WiFi会在2分钟后进入睡眠状态。这主要是为防止频繁地改变WiFi的电源模式。

下面贴出一段转载来的操作wifi的工具类

import

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;    

//构造器    

public  WifiAdmin(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();    

   }    

}


  
0 0
原创粉丝点击