1.02 wifi.MLwifi MLwifi process PingDone(isOnline As Boolean) android.permission.ACCESS_COARSE_LOCATION android.permission.ACCESS_FINE_LOCATION android.permission.ACCESS_NETWORK_STATE android.permission.ACCESS_WIFI_STATE android.permission.CHANGE_WIFI_STATE android.permission.INTERNET android.permission.WAKE_LOCK isWifiConnected Checks if WIFI is connected. This only checks for WIFI connection to a router It does NOT test for Internet availability Returns True if WIFI is connected or False if 2G, 3G, 4G, WIMAX or no connection boolean CalcWifiPct Calculates WIFI signal percentage from the WIFI signal level as an integer (0 to 100) Signal Range: -100dBm -> 0%, -50dBm -> 100% int WifiSignal int WifiAPDistance Returns the estimated distance (m) to WIFI Access Point, depending on the signal level and frequency (API level >= 21) Returns 0 on error. double isSavedWifiAP Checks if a WIFI AP is saved on the device ssid: Access Point SSID Returns True if this SSID is saved boolean ssid java.lang.String WifiSSID Returns the current WIFI SSID or empty string java.lang.String disconnectWifiAP Disconnects the current WIFI AP connection Returns True on success boolean isOnline Checks for Internet connection This method does not check or care what type of network is used It can be WIFI, 2G, 3G, 4g, WIMAX, etc. It just tests for Internet connectivity Returns True if Internet is available ERROR. This method only checks if the device is connected to any network (WIFI, Phone Data, etc), but the network can be not connected to Internet (ADSL router not connected to phone line, etc) boolean WifiSignalPct Returns the WIFI signal strength in percentage as an integer (0 to 100%) Returns 0 on error int WifiFrequency Returns the Link Frequency (MHz) of the connected WIFI Access Point (API level >= 21) Returns 0 on error. int WifiChannel Returns the Link Channel number of the connected WIFI Access Point (API level >= 21) 2.4GHz Band: 1 - 13, 14 (Japan only) 5GHz Band: 0 - 200 Returns -1 on error. int WifiIpAddress Returns the IP Address of the WIFI interface or empty string java.lang.String ActiveNetworkTypeName Returns the Type Name (WIFI, MOBILE, etc) of the current Active Network or empty string java.lang.String isMobileConnected Checks if Phone Data is connected. This only checks for connection to a phone network. It does NOT test for Internet availability. Returns True if 2G, 3G or 4G Data is connected or False if WIFI, WIMAX or no connection boolean WifiMACAddress Returns the MAC Address of the WIFI interface or empty string java.lang.String is5GHzBandSupported Returns true if this WIFI adapter supports 5 GHz band (API level >= 21) Returns False on error. boolean WifiBand Returns the Link Band of the connected WIFI Access Point (API level >= 21) WIFI_2_4GHZ_BAND: 2.4GHz Band WIFI_5GHZ_BAND: 5GHz Band Returns 0 on error. int EnableWifi Turns WIFI On or Off. Pass True to Enable WIFI or False to Disable void Enabled boolean releaseWifiOn Unlocks the WIFI radio, previously locked by calling "holdWifiOn" or "holdWifiOn2", allowing it to turn off when the device is idle. Returns True on success boolean WifiSignal Returns the WIFI signal strength in dBm as an integer or 0 on error int connectWifiAP Connects to a WIFI AP already configured on the device ssid: Access Point SSID Returns true on success boolean ssid java.lang.String isWifiEnabled Returns whether WIFI is Enabled (true) or Disabled (false) boolean ActiveNetworkType Returns the Type (0:MOBILE, 1:WIFI, 6:WIMAX, 7:BLUETOOTH, 9:ETHERNET, etc) of the current Active Network or -1 int holdWifiOn2 Allows an application to keep the WIFI radio awake. Normally the WIFI radio may turn off when the user has not used the device in a while. WIFI radio will keep awake until "releaseWifiOn" is called. lockType: WIFI_MODE_FULL, WIFI_MODE_SCAN_ONLY, WIFI_MODE_FULL_HIGH_PERF Returns True on success boolean lockType int WifiStrength Returns the WIFI signal strength in percentage as an integer (0 to 100%) Returns 0 on error This method fails in some devices. Use WifiSignalPct() instead int holdWifiOn Allows an application to keep the WIFI radio awake. Normally the WIFI radio may turn off when the user has not used the device in a while. WIFI radio will keep awake until "releaseWifiOn" is called. Returns True on success boolean isOnlinePing5 Checks for Internet connection by sending a Ping to Google DNS server (Ip: 8.8.8.8) Launches the event "isOnline_PingDone(isOnline As Boolean)" with the ping result timeout: Maximum waiting time in milliseconds This method does not check or care what type of network is used It can be WIFI, 2G, 3G, 4g, WIMAX, etc. It just tests for Internet connectivity Returns True if success boolean ba anywheresoftware.b4a.BA timeout long isOnlinePing6 Checks for Internet connection by sending a Ping to IpHost Launches the event "isOnline_PingDone(isOnline As Boolean)" with the ping result IpHost: Ip address or Host name timeout: Maximum waiting time in milliseconds This method does not check or care what type of network is used It can be WIFI, 2G, 3G, 4g, WIMAX, etc. It just tests for Internet connectivity Returns True if success boolean ba anywheresoftware.b4a.BA IpHost java.lang.String timeout long isOnlinePing3 Checks for Internet connection by sending a Ping to Google DNS server (Ip: 8.8.8.8) timeout: Maximum waiting time in milliseconds This method does not check or care what type of network is used It can be WIFI, 2G, 3G, 4g, WIMAX, etc. It just tests for Internet connectivity Returns True if Internet is available boolean timeout long isOnlinePing4 Checks for Internet connection by sending a Ping to IpHost IpHost: Ip address or Host name timeout: Maximum waiting time in milliseconds This method does not check or care what type of network is used It can be WIFI, 2G, 3G, 4g, WIMAX, etc. It just tests for Internet connectivity Returns True if Internet is available boolean IpHost java.lang.String timeout long WifiLinkSpeed Returns the LinkSpeed (Mbps) of the connected WIFI Access Point Returns 0 on error. int removeWifiAP Remove a saved WIFI AP on the device ssid: Access Point SSID Returns True on success boolean ssid java.lang.String isOnlinePing2 Checks for Internet connection by sending a Ping to IpHost (Ip address or Host name) This method does not check or care what type of network is used It can be WIFI, 2G, 3G, 4g, WIMAX, etc. It just tests for Internet connectivity Returns True if Internet is available boolean IpHost java.lang.String APIversion Returns the Version of Android running on the device as an integer such as 19, 21, 23, etc int isOnlinePing Checks for Internet connection by sending a Ping to Google DNS server (Ip: 8.8.8.8) This method does not check or care what type of network is used It can be WIFI, 2G, 3G, 4g, WIMAX, etc. It just tests for Internet connectivity Returns True if Internet is available boolean saveWifiAP Saves the configuration of a WIFI AP onto the device ssid: Access Point SSID security: Access Point security type (0:NONE, 1:WEP, 2:WAP) password: Access Point password/phrase ("" for an open network) connect: true -> Connect to the WIFI AP after saving Returns True on success boolean ssid java.lang.String security int password java.lang.String connect boolean isWifiConnectedOld Checks if WIFI is connected. This only checks for WIFI connection to a router It does NOT test for Internet availability Returns True if WIFI is connected or False if 2G, 3G, 4G, WIMAX or no connection This method uses "getNetworkInfo()" that was deprecated in API level 23 boolean isWifiHeldOn Checks if WIFI is held On by a call to "holdWifiOn" or "holdWifiOn2" boolean CHANNEL_WIDTH_80MHZ_PLUS_MHZ Channel Width 80Mhz + 80Mhz int WIFI_5GHZ_BAND 5GHz WIFI Band int CHANNEL_WIDTH_160MHZ Channel Width 160Mhz int CHANNEL_WIDTH_20MHZ Channel Width 20Mhz int CHANNEL_WIDTH_40MHZ Channel Width 40Mhz int CHANNEL_WIDTH_80MHZ Channel Width 80Mhz int WIFI_MODE_FULL In this WIFI lock mode, WIFI will be kept active, and will behave normally. It will attempt to automatically establish a connection to a remembered access point that is within range, and will do periodic scans if there are remembered access points but none are in range. int WIFI_MODE_SCAN_ONLY In this WIFI lock mode, WIFI will be kept active, but the only operation that will be supported is initiation of scans, and the subsequent reporting of scan results. No attempts will be made to automatically connect to remembered access points, nor will periodic scans be automatically performed looking for remembered access points. Scans must be explicitly requested by an application in this mode. int WIFI_2_4GHZ_BAND 2.4GHz WIFI Band int WIFI_MODE_FULL_HIGH_PERF In this WIFI lock mode, WIFI will be kept active as in mode WIFI_MODE_FULL but it operates at high performance with minimum packet loss and low packet latency even when the device screen is off. This mode will consume more power and hence should be used only when there is a need for such an active connection. int wifi.MLwifi.MLWifiScanner MLScan process ScanDone(Results() As String, Count As Int) connectWifiAP Connects to a network already configured on the device. The device will use saved values to connect. EntryNumber: If you display the string array "wifis", you can pass the Position variable from your ListView_Click event. Otherwise, you must pass the entry number from the string array since that is what is used as a reference. Returns true on success boolean EntryNumber int startScan Initializes all objects and scans for WIFI networks. Builds a string array of results (wifis) that can be accessed directly or with a call to updateWifiList. EventName: Name of the Event to launch when Scan finish (EventName_ScanDone) NoEventOnSystemScan: Launches events only on requested scans (true) or on all scans (false), including system background scans. THIS METHOD SHOULD ONLY BE CALLED ONCE! void ba anywheresoftware.b4a.BA EventName java.lang.String NoEventOnSystemScan boolean removeWifiAP Remove a saved WIFI AP on the device NetId - The network ID number to delete (returned in the listSavedNetworks method) Returns True on success boolean NetId int listSavedNetworks Builds a list of all saved networks on the device. Returns a comma separated list of: SSID,BSSID,Network ID number. java.util.List stopScan Stops events launched on system background scans, if enabled in "startScan". Call "updateWifiList" to re-activate this events. void ba anywheresoftware.b4a.BA isSavedWifiAP Checks the stored networks on the device to see if this entry is a previously saved Access Point EntryNumber: The entry number in the "wifis" array to check. If you display the string array "wifis", you can pass the Position variable from your ListView_Click event. Otherwise, you must pass the entry number from the string array since that is what is used as a reference. Returns True if this is a stored network boolean EntryNumber int WifiCap Returns a String containing info about the selected entry. A startScan must have already been done. The string contains the SSID, the BSSID, and the Capabilities of the Network Access Point, comma separated (SSID,BSSID,CapabilityString). The capabilities part can be quite long. EntryNumber: If you display the string array "wifis", you can pass the Position variable from your ListView_Click event. Otherwise, you must pass the entry number from the string array since that is what is used as a reference. Returns a string of comma separated entries of SSID,BSSID, and capability string. Returns an empty string on error. java.lang.String EntryNumber int getBSSID Returns the BSSID for the selected entry. EntryNumber: If you display the string array "wifis", you can pass the Position variable from your ListView_Click event. Otherwise, you must pass the entry number from the string array since that is what is used as a reference. java.lang.String EntryNumber int updateWifiList Call only after startScan has already been called and a string array of Access Points has been built. This method returns a string array containing the access points from the most recent scan, including background scans done automatically by the Android WifiManager. Calls the ScanDone event when a new list is ready. Returns the string array of comma separated WIFI access points by SSID. Each entry may contain the following: SSID, Security Type, Signal strength (dBm) , "Saved" (if this network was previously saved for use on this device) or "", BSSID, Signal Percentage (0-100%), Frequency (Mhz), Center Frequency 0 (Mhz), Center Frequency 1 (Mhz), Channel Width (Mhz), Channel Number, Band (2.4Ghz / 5Ghz), Distance (m). If API Level < 23 then: Center Frequency 0 = 0, Center Frequency 1 = 0 and Channel Width = -1. void ba anywheresoftware.b4a.BA saveWifiAP Saves the configuration of a WIFI AP onto the device and connects to it. EntryNumber: If you display the string array "wifis", you can pass the Position variable from your ListView_Click event. Otherwise, you must pass the entry number from the string array since that is what is used as a reference. securityType: The Access Point security type (returned in the scan result string array) Password: The password/phrase for the WIFI access point. Pass "" for an open network. Handles WEP HEX or text phrases Returns True if the connection is successful boolean EntryNumber int securityType java.lang.String Password java.lang.String wifis A string array containing all scanned Access Points in the area of the device, sorted by Signal Strength. These are comma separated entries consisting of the following: SSID, Security Type, Signal strength (dBm) , "Saved" (if this network was previously saved for use on this device) or "", BSSID, Signal Percentage (0-100%), Frequency (Mhz), Center Frequency 0 (Mhz), Center Frequency 1 (Mhz), Channel Width (Mhz), Channel Number, Band (2.4Ghz / 5Ghz), Distance (m). If API Level < 23 then: Center Frequency 0 = 0, Center Frequency 1 = 0 and Channel number = -1. java.lang.String[] 3.07 V-2.17 by Jem Miller - Missing Link Software; V-3.00 by bgsoft