package cn.jarlen.tools;
import java.util.ArrayList;
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;
/**
* 主要是对WIfi的操作;其中
* 1. ScanResult:主要是用来描述已经检测出的接入点,包括接入点的地址,名称,
* 身份验证,频率,信号强度等信息
* 2. WiFiConfiguration : WiFi配置
*
* 3. WifiInfo : WIFI无线连接的描述,包括接入点,网络连接状态,隐藏的接入点,IP地址,连接速度
* MAC地址,网络ID,信号强度等信息
*
* getBSSID() 获取BSSID
* getDetailedStateOf() 获取客户端的连通性
* getHiddenSSID() 获得SSID 是否被隐藏
* getIpAddress() 获取IP 地址
* getLinkSpeed() 获得连接的速度
* getMacAddress() 获得Mac 地址
* getRssi() 获得802.11n 网络的信号
* getSSID() 获得SSID
* getSupplicanState() 返回具体客户端状态的信息
*
* @author jarlen
*
*/
public class WiFiManagerTool {
private WifiManager mWiFiManager;
private WifiLock mWifiLock;
private ArrayList<ScanResult> wifiScanResult; /* 搜索到的wifi信息 */
private ArrayList<WifiConfiguration> wifiConfigurations; /* 已经连接配置好的wifi信息 */
private WifiInfo mWiFiInfo; /* wifi信息 */
public WiFiManagerTool(Context context){
/* 声明一个wifi管理器,用来管理操作wifi*/
mWiFiManager = (WifiManager) context.getSystemService(context.WIFI_SERVICE);
/* wifi信息 */
mWiFiInfo = mWiFiManager.getConnectionInfo();
}
/**
* open wifi
*/
public void openWiFi(){
if(!mWiFiManager.isWifiEnabled()){
mWiFiManager.setWifiEnabled(true);
}
}
/**
* close wifi
*/
public void closeWiFi(){
if(mWiFiManager.isWifiEnabled()){
mWiFiManager.setWifiEnabled(false);
}
}
/**
* get state of wifi
* @return
*/
public int getWifiState(){
return mWiFiManager.getWifiState();
}
/**
* scan wifi all around
*/
public void startScan(){
mWiFiManager.startScan();
wifiScanResult = (ArrayList<ScanResult>) mWiFiManager.getScanResults();
wifiConfigurations = (ArrayList<WifiConfiguration>) mWiFiManager.getConfiguredNetworks();
}
public ArrayList<WifiConfiguration> getWifiConfigurationList(){
return wifiConfigurations;
}
public ArrayList<ScanResult> getWiFiScanResultList(){
return wifiScanResult;
}
/**
* 创建一个wifi lock,能够阻止wifi进入睡眠状态,使wifi一直处于活跃状态
* @param lockName
*/
public void createWiFiLock(String lockName){
mWifiLock = mWiFiManager.createWifiLock(lockName);
//return mWifiLock;
}
/**
* 获得wifi锁
*/
public void lockWiFi(){
if(!mWifiLock.isHeld()){
mWifiLock.acquire();
}
}
/**
* 释放wifi 锁
*/
public void releaseWiFiLock(){
if(mWifiLock.isHeld()){
mWifiLock.release();
}
}
/**
* 连接特定的配置好的wifi
* @param index
*/
public void connectionConfiguration(int index){
if(index > wifiConfigurations.size()){
return;
}
else{
mWiFiManager.enableNetwork(wifiConfigurations.get(index).networkId, true);
}
}
public WifiInfo getConnectionInfo(){
return mWiFiInfo;
}
}
import java.util.ArrayList;
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;
/**
* 主要是对WIfi的操作;其中
* 1. ScanResult:主要是用来描述已经检测出的接入点,包括接入点的地址,名称,
* 身份验证,频率,信号强度等信息
* 2. WiFiConfiguration : WiFi配置
*
* 3. WifiInfo : WIFI无线连接的描述,包括接入点,网络连接状态,隐藏的接入点,IP地址,连接速度
* MAC地址,网络ID,信号强度等信息
*
* getBSSID() 获取BSSID
* getDetailedStateOf() 获取客户端的连通性
* getHiddenSSID() 获得SSID 是否被隐藏
* getIpAddress() 获取IP 地址
* getLinkSpeed() 获得连接的速度
* getMacAddress() 获得Mac 地址
* getRssi() 获得802.11n 网络的信号
* getSSID() 获得SSID
* getSupplicanState() 返回具体客户端状态的信息
*
* @author jarlen
*
*/
public class WiFiManagerTool {
private WifiManager mWiFiManager;
private WifiLock mWifiLock;
private ArrayList<ScanResult> wifiScanResult; /* 搜索到的wifi信息 */
private ArrayList<WifiConfiguration> wifiConfigurations; /* 已经连接配置好的wifi信息 */
private WifiInfo mWiFiInfo; /* wifi信息 */
public WiFiManagerTool(Context context){
/* 声明一个wifi管理器,用来管理操作wifi*/
mWiFiManager = (WifiManager) context.getSystemService(context.WIFI_SERVICE);
/* wifi信息 */
mWiFiInfo = mWiFiManager.getConnectionInfo();
}
/**
* open wifi
*/
public void openWiFi(){
if(!mWiFiManager.isWifiEnabled()){
mWiFiManager.setWifiEnabled(true);
}
}
/**
* close wifi
*/
public void closeWiFi(){
if(mWiFiManager.isWifiEnabled()){
mWiFiManager.setWifiEnabled(false);
}
}
/**
* get state of wifi
* @return
*/
public int getWifiState(){
return mWiFiManager.getWifiState();
}
/**
* scan wifi all around
*/
public void startScan(){
mWiFiManager.startScan();
wifiScanResult = (ArrayList<ScanResult>) mWiFiManager.getScanResults();
wifiConfigurations = (ArrayList<WifiConfiguration>) mWiFiManager.getConfiguredNetworks();
}
public ArrayList<WifiConfiguration> getWifiConfigurationList(){
return wifiConfigurations;
}
public ArrayList<ScanResult> getWiFiScanResultList(){
return wifiScanResult;
}
/**
* 创建一个wifi lock,能够阻止wifi进入睡眠状态,使wifi一直处于活跃状态
* @param lockName
*/
public void createWiFiLock(String lockName){
mWifiLock = mWiFiManager.createWifiLock(lockName);
//return mWifiLock;
}
/**
* 获得wifi锁
*/
public void lockWiFi(){
if(!mWifiLock.isHeld()){
mWifiLock.acquire();
}
}
/**
* 释放wifi 锁
*/
public void releaseWiFiLock(){
if(mWifiLock.isHeld()){
mWifiLock.release();
}
}
/**
* 连接特定的配置好的wifi
* @param index
*/
public void connectionConfiguration(int index){
if(index > wifiConfigurations.size()){
return;
}
else{
mWiFiManager.enableNetwork(wifiConfigurations.get(index).networkId, true);
}
}
public WifiInfo getConnectionInfo(){
return mWiFiInfo;
}
}