龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 移动开发 > Android开发 >

在Android里完美实现基站和WIFI定位(2)

时间:2014-07-26 02:48来源:网络整理 作者:网络 点击:
分享到:
WifiInfoManager import java.util.ArrayList;import java.util.Iterator;import java.util.List;import org.json.JSONArray;import org.json.JSONObject;import android.content.Context;import android.net.wifi.S

WifiInfoManager

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.json.JSONArray;
import org.json.JSONObject;
import android.content.Context;
import android.net.wifi.ScanResult;
import android.net.wifi.WifiManager;
import android.util.Log;
public class WifiInfoManager {
    private WifiManager wifiManager;
    public WifiInfoManager(Context paramContext) {
       this.wifiManager = (WifiManager) paramContext.getSystemService(Context.WIFI_SERVICE);
    }
    public List<WifiInfo> dump() {
       if (!this.wifiManager.isWifiEnabled()) {
           return new ArrayList<WifiInfo>();
       }
       android.net.wifi.WifiInfo wifiConnection = this.wifiManager.getConnectionInfo();
       WifiInfo currentWIFI = null;
       if (wifiConnection != null) {
           String s = wifiConnection.getBSSID();
           int i = wifiConnection.getRssi();
           String s1 = wifiConnection.getSSID();
           currentWIFI = new WifiInfo(s, i, s1);
       }
       ArrayList<WifiInfo> lsAllWIFI = new ArrayList<WifiInfo>();
       if (currentWIFI != null) {
           lsAllWIFI.add(currentWIFI);
       }
       List<ScanResult> lsScanResult = this.wifiManager.getScanResults();
       for (ScanResult result : lsScanResult) {
           WifiInfo scanWIFI = new WifiInfo(result);
           if (!scanWIFI.equals(currentWIFI))
              lsAllWIFI.add(scanWIFI);
       }
       return lsAllWIFI;
    }
    public boolean isWifiEnabled() {
       return this.wifiManager.isWifiEnabled();
    }
    public JSONArray wifiInfo() {
       JSONArray jsonArray = new JSONArray();
       for (WifiInfo wifi : dump()) {
           JSONObject localJSONObject = wifi.info();
           jsonArray.put(localJSONObject);
       }
       return jsonArray;
    }
    public WifiManager wifiManager() {
       return this.wifiManager;
    }
    public JSONArray wifiTowers() {
       JSONArray jsonArray = new JSONArray();
       try {
           Iterator<WifiInfo> localObject = dump().iterator();
           while (true) {
              if (!(localObject).hasNext()) {
                  return jsonArray;
              }
              jsonArray.put(localObject.next().wifi_tower());
           }
       } catch (Exception localException) {
           Log.e("location", localException.getMessage());
       }
       return jsonArray;
    }
    public class WifiInfo implements Comparable<WifiInfo> {
       public int compareTo(WifiInfo wifiinfo) {
           int i = wifiinfo.dBm;
           int j = dBm;
           return i - j;
       }
       public boolean equals(Object obj) {
           boolean flag = false;
           if (obj == this) {
              flag = true;
              return flag;
           } else {
              if (obj instanceof WifiInfo) {
                  WifiInfo wifiinfo = (WifiInfo) obj;
                  int i = wifiinfo.dBm;
                  int j = dBm;
                  if (i == j) {
                     String s = wifiinfo.bssid;
                     String s1 = bssid;
                     if (s.equals(s1)) {
                         flag = true;
                         return flag;
                     }
                  }
                  flag = false;
              } else {
                  flag = false;
              }
           }
           return flag;
       }
       public int hashCode() {
           int i = dBm;
           int j = bssid.hashCode();
           return i ^ j;
       }
       public JSONObject info() {
           JSONObject jsonobject = new JSONObject();
           try {
              String s = bssid;
              jsonobject.put("mac", s);
              String s1 = ssid;
              jsonobject.put("ssid", s1);
              int i = dBm;
              jsonobject.put("dbm", i);
           } catch (Exception ex) {
           }
           return jsonobject;
       }
       public JSONObject wifi_tower() {
           JSONObject jsonobject = new JSONObject();
           try {
              String s = bssid;
              jsonobject.put("mac_address", s);
              int i = dBm;
              jsonobject.put("signal_strength", i);
              String s1 = ssid;
              jsonobject.put("ssid", s1);
              jsonobject.put("age", 0);
           } catch (Exception ex) {
           }
           return jsonobject;
       }
       public final String bssid;
       public final int dBm;
       public final String ssid;
       public WifiInfo(ScanResult scanresult) {
           String s = scanresult.BSSID;
           bssid = s;
           int i = scanresult.level;
           dBm = i;
           String s1 = scanresult.SSID;
           ssid = s1;
       }
       public WifiInfo(String s, int i, String s1) {
           bssid = s;
           dBm = i;
           ssid = s1;
       }
    }
}

精彩图集

赞助商链接