WiFiAdmin.java 源代码
package liteos.osUtils;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.wifi.ScanResult;
import android.net.wifi.WifiConfiguration;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.util.Log;
import java.util.List;
public class WiFiAdmin {
static final int SECURITY_EAP = 3;
static final int SECURITY_ERR = 4;
static final int SECURITY_NONE = 0;
static final int SECURITY_PSK = 2;
static final int SECURITY_WEP = 1;
private static final String TAG = "WifiAdmin";
private ConnectivityManager mConnectivityManager;
private List<WifiConfiguration> mWifiConfigurations;
private WifiInfo mWifiInfo;
private List<ScanResult> mWifiList;
private WifiManager mWifiManager;
public WiFiAdmin(Context context) {
WifiManager wifiManager = (WifiManager) context.getSystemService("wifi");
this.mWifiManager = wifiManager;
this.mWifiInfo = wifiManager.getConnectionInfo();
this.mWifiConfigurations = this.mWifiManager.getConfiguredNetworks();
this.mConnectivityManager = (ConnectivityManager) context.getSystemService("connectivity");
}
public void startScan() {
this.mWifiManager.startScan();
this.mWifiList = this.mWifiManager.getScanResults();
}
public boolean isWifiEnabled() {
return this.mWifiManager.isWifiEnabled();
}
public List<ScanResult> getWifiList() {
return this.mWifiList;
}
public String getWifiSSID() {
WifiInfo connectionInfo = this.mWifiManager.getConnectionInfo();
this.mWifiInfo = connectionInfo;
String ssid = connectionInfo == null ? "NULL" : connectionInfo.getSSID();
return ssid.substring(1, ssid.length() - 1);
}
public String getWifiIPAdress() {
WifiInfo wifiInfo = this.mWifiInfo;
int ipAddress = wifiInfo == null ? 0 : wifiInfo.getIpAddress();
return String.format("%c%c%c%c", Integer.valueOf(ipAddress & 255), Integer.valueOf((ipAddress >> 8) & 255), Integer.valueOf((ipAddress >> 16) & 255), Integer.valueOf((ipAddress >> 24) & 255));
}
public int getSecurity() {
for (WifiConfiguration wifiConfiguration : this.mWifiConfigurations) {
String wifiSSID = getWifiSSID();
String str = wifiConfiguration.SSID;
if (wifiSSID.equals(str.substring(1, str.length() - 1)) && this.mWifiInfo.getNetworkId() == wifiConfiguration.networkId) {
if (wifiConfiguration.allowedKeyManagement.get(1)) {
return 2;
}
if (wifiConfiguration.allowedKeyManagement.get(2) || wifiConfiguration.allowedKeyManagement.get(3)) {
return 3;
}
return wifiConfiguration.wepKeys[0] != null ? 1 : 0;
}
}
return 4;
}
public void addNetWork(WifiConfiguration wifiConfiguration) {
this.mWifiManager.enableNetwork(this.mWifiManager.addNetwork(wifiConfiguration), true);
this.mWifiManager.reconnect();
this.mWifiManager.saveConfiguration();
}
public void reconnect() {
this.mWifiManager.reconnect();
}
public void enableNetWork(int i) {
this.mWifiManager.enableNetwork(i, true);
}
public boolean isWifiConnected() {
return this.mConnectivityManager.getNetworkInfo(1).getState() == NetworkInfo.State.CONNECTED;
}
public int getNetWorkId() {
WifiInfo wifiInfo = this.mWifiInfo;
if (wifiInfo == null) {
return -1;
}
return wifiInfo.getNetworkId();
}
public void disConnectionWifi(int i) {
this.mWifiManager.disableNetwork(i);
this.mWifiManager.disconnect();
}
private WifiConfiguration IsExsits(String str) {
List<WifiConfiguration> configuredNetworks = this.mWifiManager.getConfiguredNetworks();
if (configuredNetworks == null) {
return null;
}
for (WifiConfiguration wifiConfiguration : configuredNetworks) {
if (wifiConfiguration.SSID != null) {
if (wifiConfiguration.SSID.equals("\"" + str + "\"")) {
return wifiConfiguration;
}
}
}
return null;
}
public void forgetWifi(String str) {
WifiConfiguration IsExsits = IsExsits(str);
if (IsExsits != null) {
Log.e(TAG, "tempConfig.networkId=" + IsExsits.networkId);
this.mWifiManager.removeNetwork(IsExsits.networkId);
this.mWifiManager.saveConfiguration();
}
}
public WifiConfiguration createWifiInfo(String str, String str2, int i) {
WifiConfiguration wifiConfiguration = new WifiConfiguration();
wifiConfiguration.allowedAuthAlgorithms.clear();
wifiConfiguration.allowedGroupCiphers.clear();
wifiConfiguration.allowedKeyManagement.clear();
wifiConfiguration.allowedPairwiseCiphers.clear();
wifiConfiguration.allowedProtocols.clear();
wifiConfiguration.SSID = "\"" + str + "\"";
if (i == 1) {
Log.e(TAG, "set open wifi");
wifiConfiguration.hiddenSSID = true;
wifiConfiguration.allowedKeyManagement.set(0);
}
if (i == 2) {
wifiConfiguration.hiddenSSID = true;
wifiConfiguration.wepKeys[0] = "\"" + str2 + "\"";
wifiConfiguration.allowedAuthAlgorithms.set(1);
wifiConfiguration.allowedGroupCiphers.set(3);
wifiConfiguration.allowedGroupCiphers.set(2);
wifiConfiguration.allowedGroupCiphers.set(0);
wifiConfiguration.allowedGroupCiphers.set(1);
wifiConfiguration.allowedKeyManagement.set(0);
wifiConfiguration.wepTxKeyIndex = 0;
}
if (i == 3) {
wifiConfiguration.preSharedKey = "\"" + str2 + "\"";
wifiConfiguration.hiddenSSID = true;
wifiConfiguration.allowedAuthAlgorithms.set(0);
wifiConfiguration.allowedGroupCiphers.set(2);
wifiConfiguration.allowedKeyManagement.set(1);
wifiConfiguration.allowedPairwiseCiphers.set(1);
wifiConfiguration.allowedGroupCiphers.set(3);
wifiConfiguration.allowedPairwiseCiphers.set(2);
wifiConfiguration.status = 2;
}
return wifiConfiguration;
}
}