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