Android Question Android 8.1 problem to get connected SSID


Active Member
Licensed User
Longtime User
Hi all,

with this code I want to get the connected SSID name under Android 8.1. This should be my router because the app is installed over B4A bridge.

Sub Process_Globals
    'These global variables will be declared once when the application starts.
    'These variables can be accessed from all modules.
    Dim Wifi As JavaObject
    Dim context As JavaObject
End Sub

Sub Globals
    'These global variables will be redeclared each time the activity is created.
    'These variables can only be accessed from this module.
End Sub

Sub Activity_Create(FirstTime As Boolean)
    'Do not forget to load the layout file created with the visual designer. For example:
    Wait For Activity_PermissionResult (Permission As String, Result As Boolean)
    Wifi = context.RunMethod("getSystemService", Array("wifi"))

    Dim SSID, state As String
    Dim jo As JavaObject
    jo = Wifi.RunMethodJO("getConnectionInfo", Null)
    state = jo.RunMethod("getSupplicantState", Null)
  If state = "COMPLETED" Then
        SSID = jo.RunMethod("getSSID", Null)
        Msgbox(state, SSID)
        Msgbox("Not COMPLETED", "state")

  End If

End Sub

Sub Activity_Resume

End Sub

Sub Activity_Pause (UserClosed As Boolean)

End Sub

Sub Activity_PermissionResult (Permission As String, Result As Boolean)

End Sub

The msgbox shows:

<unknown ssid>

In the Documentation for Wifimanager is:
An app must hold ACCESS_COARSE_LOCATION or ACCESS_FINE_LOCATION permission in order to get valid results.

I granted the permission ACCESS_COARSE_LOCATION.

Has anyone an idea?


Licensed User
Longtime User
i don´t see you using the result of the permission-request. Are you sure the permission returns TRUE in your request?

Returns the service set identifier (SSID) of the current 802.11 network. If the SSID can be decoded as UTF-8, it will be returned surrounded by double quotation marks. Otherwise, it is returned as a string of hex digits. The SSID may be <unknown ssid> if there is no network currently connected, or if the caller has insufficient permissions to access the SSID

Missing location
As of now, permission itself is not enough, location services have to be enabled to use WifiManager.getScanResults and WifiManager.getConnectionInfo.
Location is enabled?
Last edited:
Upvote 0


Active Member
Licensed User
Longtime User
At first I resetted the permission for "Location" in my tablet. Then I run this app. It appears a dialog where I can set the permission for location. At the second start of this app the dialog desn't appera that means the permission was setted. In the tablets setting I see that too.
Upvote 0


Active Member
Licensed User
Longtime User
I found a solution with help from Google:

Sub GetWIFIName As String
    Dim R As Reflector
    Dim SSID As String
    ' Add this permission to the manifest: AddPermission (android.permission.ACCESS_NETWORK_STATE)
    R.Target = R.GetContext
        R.Target = R.RunMethod2("getSystemService", "connectivity", "java.lang.String")
        R.Target = R.RunMethod("getActiveNetworkInfo")
        R.Target = R.RunMethod("getExtraInfo")
        SSID = R.Target
        SSID = SSID.SubString2(1, SSID.Length - 1)
        Return SSID
        Return "none"
    End Try
End Sub

It shows me the correct name of my router in Android 5, 6, 7 and 8.1

I have no device with Android 9. If someone has A 9, please test the code and let us know if it works.
Upvote 0