package com.az.Location; 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; } } }