package com.dappervision.wearscript.managers; import android.content.Context; import android.net.wifi.ScanResult; import android.net.wifi.WifiInfo; import com.dappervision.wearscript.BackgroundService; import com.dappervision.wearscript.events.WifiEvent; import com.dappervision.wearscript.events.WifiScanEvent; import com.dappervision.wearscript.events.WifiScanResultsEvent; import org.json.simple.JSONArray; import org.json.simple.JSONObject; public class WifiManager extends Manager { public static final String SCAN_RESULTS_AVAILABLE_ACTION = android.net.wifi.WifiManager.SCAN_RESULTS_AVAILABLE_ACTION; public static String WIFI = "WIFI"; android.net.wifi.WifiManager manager; private boolean enabled; public WifiManager(BackgroundService bs) { super(bs); reset(); } public String getMacAddress() { WifiInfo info = manager.getConnectionInfo(); return info.getMacAddress(); } public String getScanResults() { Double timestamp = System.currentTimeMillis() / 1000.; JSONArray a = new JSONArray(); for (ScanResult s : manager.getScanResults()) { JSONObject r = new JSONObject(); r.put("timestamp", timestamp); r.put("capabilities", new String(s.capabilities)); r.put("SSID", new String(s.SSID)); r.put("BSSID", new String(s.BSSID)); r.put("level", Integer.valueOf(s.level)); r.put("frequency", Integer.valueOf(s.frequency)); a.add(r); } return a.toJSONString(); } public void onEvent(WifiScanEvent e) { manager.startScan(); } public void onEventBackgroundThread(WifiScanResultsEvent e) { makeCall(WIFI, getScanResults()); } @Override public void reset() { super.reset(); enabled = false; manager = (android.net.wifi.WifiManager) service.getSystemService(Context.WIFI_SERVICE); } public void onEvent(WifiEvent e) { enabled = e.getStatus(); } }