Android之wifi篇

wifi 常用方法均在这段代码中:

addNetwork :添加一个配置好的网络

calculateSignalLevel :计算信号的强度

compareSignalLevel :比较两个信号的强度
cerateWifiLock:创建一个Wifi锁

disableNetwork:取消一个配置好的网络(使其不可用)

disConnect:从接入点断开

enableNetwork:允许指定网络连接
getConfiguredNetwork:得到客户端所有已经配置好的网络列表

getConnectionInfo:得到正在使用的连接的动态信息

getDhcpInfo:得到最后一次成功连接的DHCP请求的DHCP地址

getScanResults:得到被扫描的接入点

getWifiState:得到可用Wifi状态

isWifiEnabled:判断wifi是否可用

pingSupplicant:检查客户端对请求的反应

reassociate:从当前接入点重新连接

removeNetwork:从已经配置好的网络列表中删除指定ID的网络

saveConfiguration ;保存当前配置好的网络列表
setWifiEnable:设置wifi是否可用

startScan:扫描存在的接入点
updateNetwork:更新已经配置好的网络

代码如下:

package com.test.irant10;

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<WifiConfiguration> mWifiConfiguration;
 //扫描出的网络接入点列表
 private List<ScanResult> mScanResult;
 //定义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 ColseWifi(){
  if(mWifiManager.isWifiEnabled()){
   mWifiManager.setWifiEnabled(false);
  }
 }
 
 //锁定wifiLock
 public void AcquireWifiLock(){
  mWifiLock.acquire();
 }
 
 //解锁WifiLock
 public void  ReleaseWifiLock(){
  //判断wifi是否锁住
  if(mWifiLock.isHeld()){
   mWifiLock.release();
  }
 }
 
 //创建一个wifiLock
 public void CreateWifiLock(){
  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();
  //得到扫描结果
  mScanResult = mWifiManager.getScanResults();
  //得到配置好的连接
  mWifiConfiguration = mWifiManager.getConfiguredNetworks();
 }
 
 //获得网络列表
 public List<ScanResult> getWifiList(){
  return mScanResult;
 }
 
 //查看扫描结果
 public StringBuilder lookUpScan(){
  StringBuilder stringBuilder = new StringBuilder();
  for(int i = 0; i < mScanResult.size(); i++){
   stringBuilder.append("Index_" + new Integer(i + 1).toString() + ":");
   //将ScanResult信息转换为一个字符串宝
   //其中包括BSSID、SSID、capabilities、frequency和level
   stringBuilder.append(mScanResult.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 GetIP(){
  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);
 }
 
 //断开制定网络的连接
 public void DisconnectWifi(int netId){
  mWifiManager.disableNetwork(netId);
  mWifiManager.disconnect();
 }
}
 

不过记得要加权限哦!

    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
    <uses-permission android:name="android.permission.ACCESS_CHECKIN_PROPERTIES"/>
    <uses-permission android:name="android.permission.WAKE_LOCK"/>
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
    <uses-permission android:name="android.permission.MODIFY_PHONE_STATE"/>

你可能感兴趣的:(android,android,wifi,wifi,wifi详解)