android wifi処理
3778 ワード
androidアプリケーションではwifiを便利に使用して異なるアプリケーションのニーズを処理することができ、柔軟で方面の方法は開発者に提供され、ここではよく使われるwifi処理関数を定義し、androidアプリケーション開発を参照して第8章の内容を解読する.
public class WifiAdmin {
private String tag = "WifiAdmin";
private WifiManager wifiManager;
private WifiInfo wifiInfo;
private List<ScanResult> wifiList;
private List<WifiConfiguration> wifiConfiguration;
WifiLock wifiLock;
public WifiAdmin(Context context) {
wifiManager = (WifiManager) context
.getSystemService(Context.WIFI_SERVICE);
wifiInfo = wifiManager.getConnectionInfo();
}
// wifi ssid
public void connected(){
for(WifiConfiguration config:getConfiguration()){
String ssid = config.SSID.replace("\"", "");
if(config.status!=1){
Log.i(tag, "ssid--------->"+ssid);
if(ssid.startsWith("OPLK")){
this.connectConfiguration(config.networkId);
while (getWifiState() == WifiManager.WIFI_STATE_ENABLING) {
try {
Thread.currentThread();
Thread.sleep(100);
} catch (InterruptedException ie) {
}
}
break;
}
}
}
}
public int getWifiState(){
return wifiManager.getWifiState();
}
// wifi
public void openWifi() {
if (!wifiManager.isWifiEnabled()) {
wifiManager.setWifiEnabled(true);
}
}
// wifi
public void closeWifi() {
if (!wifiManager.isWifiEnabled()) {
wifiManager.setWifiEnabled(false);
}
}
// wifi
public void acquireWifiLock() {
wifiLock.acquire();
}
// wifi
public void releaseWifiLock() {
if (wifiLock.isHeld()) {
wifiLock.acquire();
}
}
public void creatWifiLock() {
wifiLock = wifiManager.createWifiLock("Test");
}
public List<WifiConfiguration> getConfiguration() {
return wifiConfiguration;
}
public void connectConfiguration(int networkId) {
boolean isConn = wifiManager.enableNetwork(networkId, true);
Log.i(tag, "isConn----->"+isConn);
}
public void startScan() {
wifiManager.startScan();
wifiList = wifiManager.getScanResults();
wifiConfiguration = wifiManager.getConfiguredNetworks();
Log.i(tag, "start scan wifi list size------>"+wifiList.size());
}
public List<ScanResult> getWifiList() {
return wifiList;
}
public void LookUpScan() {
for (ScanResult result:wifiList) {
Log.i(tag, "wifi ssid---->"+result.SSID);
}
}
public String GetMacAddress() {
return (wifiInfo == null) ? "NULL" : wifiInfo.getMacAddress();
}
public String GetBSSID() {
return (wifiInfo == null) ? "NULL" : wifiInfo.getBSSID();
}
public int GetIPAddress() {
return (wifiInfo == null) ? 0 : wifiInfo.getIpAddress();
}
public int GetNetworkId() {
return (wifiInfo == null) ? 0 : wifiInfo.getNetworkId();
}
public String GetWifiInfo() {
return (wifiInfo == null) ? "NULL" : wifiInfo.toString();
}
public void AddNetwork(WifiConfiguration wcg) {
int wcgID = wifiManager.addNetwork(wcg);
wifiManager.enableNetwork(wcgID, true);
}
public void DisconnectWifi(int netId) {
wifiManager.disableNetwork(netId);
wifiManager.disconnect();
}
}