diff --git a/src/android/src/com/pylonproducts/wifiwizard/WifiWizard.java b/src/android/src/com/pylonproducts/wifiwizard/WifiWizard.java index 2c4ac8f..2b6714c 100644 --- a/src/android/src/com/pylonproducts/wifiwizard/WifiWizard.java +++ b/src/android/src/com/pylonproducts/wifiwizard/WifiWizard.java @@ -43,6 +43,7 @@ public class WifiWizard extends CordovaPlugin { private static final String START_SCAN = "startScan"; private static final String GET_SCAN_RESULTS = "getScanResults"; private static final String GET_CONNECTED_SSID = "getConnectedSSID"; + private static final String GET_CONNECTED_BSSID = "getConnectedBSSID"; private static final String IS_WIFI_ENABLED = "isWifiEnabled"; private static final String SET_WIFI_ENABLED = "setWifiEnabled"; private static final String TAG = "WifiWizard"; @@ -99,6 +100,9 @@ else if(action.equals(DISCONNECT)) { else if(action.equals(GET_CONNECTED_SSID)) { return this.getConnectedSSID(callbackContext); } + else if(action.equals(GET_CONNECTED_BSSID)) { + return this.getConnectedBSSID(callbackContext); + } else { callbackContext.error("Incorrect action parameter: " + action); } @@ -491,6 +495,36 @@ private boolean getConnectedSSID(CallbackContext callbackContext){ return true; } + /** + * This method retrieves the BSSID for the currently connected network + * + * @param callbackContext A Cordova callback context + * @return true if BSSID found, false if not. + */ + private boolean getConnectedBSSID(CallbackContext callbackContext){ + if(!wifiManager.isWifiEnabled()){ + callbackContext.error("Wifi is disabled"); + return false; + } + + WifiInfo info = wifiManager.getConnectionInfo(); + + if(info == null){ + callbackContext.error("Unable to read wifi info"); + return false; + } + + String bssid = info.getBSSID(); + + if(bssid.isEmpty()){ + callbackContext.error("BSSID is empty"); + return false; + } + + callbackContext.success(bssid); + return true; + } + /** * This method retrieves the current WiFi status * diff --git a/www/WifiWizard.js b/www/WifiWizard.js index 70d1415..f8576b3 100644 --- a/www/WifiWizard.js +++ b/www/WifiWizard.js @@ -248,10 +248,10 @@ var WifiWizard = { } cordova.exec(win, fail, 'WifiWizard', 'getConnectedSSID', []); }, - + getCurrentBSSID: function(win, fail) { if (typeof win != "function") { - console.log("getCurrentSSID first parameter must be a function to handle SSID."); + console.log("getCurrentSSID first parameter must be a function to handle BSSID."); return; } cordova.exec(win, fail, 'WifiWizard', 'getConnectedBSSID', []);