由于时间比较紧,切没有接触过Android,这个CLASS写的很烂,但是功能正常:
1、判断wifi是否打开;
2、判断wifi是否连接;
3、扫面wifi列表;
4、连接指定wifi;
5、自动判断加密方式(无密码和WAP(2)已验证);
6、获得接入点IP;
7、关闭wifi;
public class MyWifiClass {
/*private List<ScanResult> my_list=null;*/
public boolean my_WifiOpen(Context inContext){
Context context = inContext.getApplicationContext();
if(null == context){
return false;
}
WifiManager wifiMgr = (WifiManager)(WifiManager) context.getSystemService(Context.WIFI_SERVICE);
if(!wifiMgr.isWifiEnabled()){
wifiMgr.setWifiEnabled(true);
}
return wifiMgr.isWifiEnabled();
}
public void my_WifiClose(Context inContext){
Context context = inContext.getApplicationContext();
if(null == context){
return ;
}
WifiManager wifiMgr = (WifiManager)(WifiManager) context.getSystemService(Context.WIFI_SERVICE);
if(wifiMgr.isWifiEnabled()){
wifiMgr.setWifiEnabled(false);
}
}
public List<ScanResult> my_WifiList(Context inContext){
List<ScanResult> list=null;
Context context = inContext.getApplicationContext();
if(null == context){
return list;
}
WifiManager wifiMgr = (WifiManager)(WifiManager) context.getSystemService(Context.WIFI_SERVICE);
wifiMgr.startScan();//扫描wifi
list = wifiMgr.getScanResults();//获得列表
return list;
}
public boolean isWiFiActive(Context inContext) {
Context context = inContext.getApplicationContext();
if(null == context){
return false;
}
ConnectivityManager connectivity = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity != null) {
NetworkInfo[] info = connectivity.getAllNetworkInfo();
if (info != null) {
for (int i = 0; i < info.length; i++) {
if (info[i].getTypeName().equals("WIFI") && info[i].isConnected()) {
return true;
}
}
}
}
return false;
}
public String my_ReturnWifiName(Context inContext){
Context context = inContext.getApplicationContext();
if(null == context){
return null;
}
WifiManager wifiMgr = (WifiManager)(WifiManager) context.getSystemService(Context.WIFI_SERVICE);
int wifiState = wifiMgr.getWifiState();
WifiInfo info = wifiMgr.getConnectionInfo();
String wifiId = info != null ? info.getSSID() : null;
int i;
char toChar;
String returnString;
returnString=null;
if(wifiId != null){
returnString = "";
if(wifiId.charAt(0) == '\"'){
for(i=1;i<wifiId.length()-1;i++){
toChar = wifiId.charAt(i);
returnString+=toChar;
}
}else {
returnString = wifiId;
}
}
return returnString;
}
public int my_getWifiIp_Int(Context inContext) {
Context context = inContext.getApplicationContext();
if(null == context){
return 0;
}
WifiManager wifiMgr = (WifiManager)(WifiManager) context.getSystemService(Context.WIFI_SERVICE);
// if (isWifiEnabled()) {
int ipAsInt = wifiMgr.getConnectionInfo().getIpAddress();
if (ipAsInt == 0) {
return 0;
} else {
return ipAsInt;
}
// } else {
// return null;
// }
}
public String my_getWifiIp_String(Context inContext) {
Context context = inContext.getApplicationContext();
if(null == context){
return null;
}
WifiManager wifiMgr = (WifiManager)(WifiManager) context.getSystemService(Context.WIFI_SERVICE);
// if (isWifiEnabled()) {
int ipAsInt = wifiMgr.getConnectionInfo().getIpAddress();
if (ipAsInt == 0) {
return null;
} else {
return intToIp(ipAsInt);
}
// } else {
// return null;
// }
}
public int my_getHOSTIp_Int(Context inContext) {
Context context = inContext.getApplicationContext();
if(null == context){
return 0;
}
WifiManager wifiMgr = (WifiManager)(WifiManager) context.getSystemService(Context.WIFI_SERVICE);
// if (isWifiEnabled()) {
DhcpInfo dhcpinfo = wifiMgr.getDhcpInfo();
if(null == dhcpinfo){
return 0;
}
int ipAsInt = dhcpinfo.serverAddress;
if (ipAsInt == 0) {
return 0;
} else {
return ipAsInt;
}
// } else {
// return null;
// }
}
public String my_getHOSTIp_String(Context inContext) {
Context context = inContext.getApplicationContext();
if(null == context){
return null;
}
WifiManager wifiMgr = (WifiManager)(WifiManager) context.getSystemService(Context.WIFI_SERVICE);
// if (isWifiEnabled()) {
DhcpInfo dhcpinfo = wifiMgr.getDhcpInfo();
if(null == dhcpinfo){
return null;
}
int ipAsInt = dhcpinfo.serverAddress;
if (ipAsInt == 0) {
return null;
} else {
return intToIp(ipAsInt);
}
// } else {
// return null;
// }
}
public boolean my_addNetword(Context inContext,String SSID,String Password){
Context context = inContext.getApplicationContext();
List<ScanResult> my_lisi=null;
int Type=1;
if(null == context){
return false;
}
if(isWiFiActive(inContext)){
my_disconnectWifi(inContext);
}
String my_key;
my_lisi=my_WifiList(inContext);
for(int i=0;i<my_lisi.size();i++) {
if(my_lisi.get(i).SSID.equals(SSID)){
my_key=my_lisi.get(i).capabilities;
if(my_key.contains("WPA")){
Type = 3;
}else if(my_key.contains("WEP")){
Type = 2;
}else {
Type = 1;
}
break;
}
}
/* if(Password == null){
Type = 1;
}*/
WifiManager wifiMgr = (WifiManager)(WifiManager) context.getSystemService(Context.WIFI_SERVICE);
WifiConfiguration my_wcg=null;
my_wcg=CreateWifiConfiguration(inContext,SSID,Password,Type);
if(null == wifiMgr){
return false;
}
if(null == my_wcg){
return false;
}
int wcgID= wifiMgr.addNetwork(my_wcg);
wifiMgr.enableNetwork(wcgID,true);
return true;
}
public void my_disconnectWifi(Context inContext){
Context context = inContext.getApplicationContext();
if(null == context){
return;
}
WifiManager wifiMgr = (WifiManager)(WifiManager) context.getSystemService(Context.WIFI_SERVICE);
int wifiState = wifiMgr.getWifiState();
WifiInfo info = wifiMgr.getConnectionInfo();
int netID=info.getNetworkId();
/*wifiMgr.disableNetwork(netID);*/
wifiMgr.disconnect();
}
public List<WifiConfiguration> my_getWifiConfiguration(Context inContext){
List<WifiConfiguration> wifiConfig=null;
Context context = inContext.getApplicationContext();
if(null == context){
return null;
}
WifiManager wifiMgr = (WifiManager)(WifiManager) context.getSystemService(Context.WIFI_SERVICE);
if(null != wifiMgr){
wifiConfig = wifiMgr.getConfiguredNetworks();
}
return wifiConfig;
}
public WifiConfiguration CreateWifiConfiguration(Context inContext,String SSID,String Password,int Type){
Context context = inContext.getApplicationContext();
if(null == context){
return null;
}
WifiManager wifiMgr = (WifiManager)(WifiManager) context.getSystemService(Context.WIFI_SERVICE);
WifiConfiguration config = new WifiConfiguration();
config.allowedAuthAlgorithms.clear();
config.allowedGroupCiphers.clear();
config.allowedKeyManagement.clear();
config.allowedPairwiseCiphers.clear();
config.allowedProtocols.clear();
config.SSID="\""+SSID+"\"";
WifiConfiguration tempConfig=this.IsExsits(inContext,SSID);
if(null != tempConfig){
wifiMgr.removeNetwork(tempConfig.networkId);
}
switch (Type){
case 1: //WIFICIPHER_NOPASS
config.hiddenSSID=true;
// config.wepKeys[0]="";
config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
// config.wepTxKeyIndex=0;
break;
case 2://WIFICIPHER_WEP
config.hiddenSSID = true;
config.wepKeys[0]= "\""+Password+"\"";
config.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.SHARED);
config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40);
config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP104);
config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
config.wepTxKeyIndex = 0;
break;
case 3://WIFICIPHER_WPA
config.preSharedKey = "\""+Password+"\"";
config.hiddenSSID = true;
config.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN);
config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
config.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);
//config.allowedProtocols.set(WifiConfiguration.Protocol.WPA);
config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
config.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);
config.status = WifiConfiguration.Status.ENABLED;
break;
}
return config;
}
private WifiConfiguration IsExsits(Context inContext,String SSID){
List<WifiConfiguration> existingConfigs = null;
existingConfigs = my_getWifiConfiguration(inContext);
for(WifiConfiguration existingConfig : existingConfigs){
if(existingConfig.SSID.equals("\""+SSID+"\"")){
return existingConfig;
}
}
return null;
}
private String intToIp(int i) {
return (i & 0xFF ) + "." +
((i >> 8 ) & 0xFF) + "." +
((i >> 16 ) & 0xFF) + "." +
( i >> 24 & 0xFF) ;
}
}