Android Question Scan wifi and MLwifi library

Discussion in 'Android Questions' started by uniplan, Mar 18, 2019.

  1. uniplan

    uniplan Active Member Licensed User

    Hi to all...i need to scan the all wifi around me at the moment and know the ssid.
    I test the MLwifi library:
    https://www.b4x.com/android/help/mlwifi.html
    but the wifi_ScanDone not triggered...why?
    it necessary or possible to set a time limit to scan?
    this is my code...thank you

    Code:
    Sub Process_Globals
        
    'These global variables will be declared once when the application starts.
        'These variables can be accessed from all modules.
      
        
    Dim myMLWifiObject As MLwifi
        
    Dim myMLScan As MLScan
        
    Dim rp As RuntimePermissions
        
    Type SSIDentry (SSID As String, BSSID As String, Index As String)
    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.
        Private ListView1 As ListView
    End Sub

    Sub Activity_Create(FirstTime As Boolean)
        
    'Do not forget to load the layout file created with the visual designer. For example:
        Activity.LoadLayout("main")
        
    If FirstTime Then
            
    Dim numberOfValidPermissions As Int = 0
            rp.CheckAndRequest(rp.PERMISSION_ACCESS_FINE_LOCATION)
            
    wait for Activity_PermissionResult (Permission As String, Result As Boolean)
            
    If Result Then
                
    ' Fine location permission OK
                numberOfValidPermissions = numberOfValidPermissions +1
            
    End If
            rp.CheckAndRequest(rp.PERMISSION_ACCESS_COARSE_LOCATION)
            
    wait for Activity_PermissionResult (Permission As String, Result As Boolean)
            
    If Result Then
                
    ' COARSE location permission OK
                numberOfValidPermissions = numberOfValidPermissions + 1
            
    End If
            
    If numberOfValidPermissions = 2 Then
                
    Log("   ")
                
    Log("Doing the Scan...")
                myMLScan.startscan(
    "wifi",False)
            
    Else
                
    Log("Permission not set")
            
    End If
        
    End If
    End Sub

    Sub Activity_Resume
    End Sub

    Sub Activity_Pause (UserClosed As Boolean)
    End Sub

    Sub wifi_ScanDone(Results() As String, Count As Int)
        
    Dim record As SSIDentry
        record.initialize
      
        
    Dim ListForList As List
        ListForList.Initialize
      
        
    Dim listofNetworks As List
        listofNetworks = myMLScan.listSavedNetworks
          
        
    Dim returnedEntry() As String
        
    For i = 0 To listofNetworks.Size-1
            returnedEntry = 
    Regex.Split(",",listofNetworks.Get(i))
          
            record.ssid = returnedEntry(
    0).SubString2(1,returnedEntry(0).Length-1'Remove the quotes
            record.bssid = returnedEntry(1)
            record.index = returnedEntry(
    2)
          
            ListView1.AddTwoLines2(record.SSID,record.Index,record.SSID)
          
        
    Next
    End Sub

    Sub ListView1_ItemClick (Position As Int, Value As Object)
      
        
    Private connectionStart As Long = DateTime.Now
        
    Private connectionTimeOut As Long = 30000
      
        
    Dim selectedSSID As String
      
        selectedSSID = Value
        
    ToastMessageShow(selectedSSID,False)
      
        myMLWifiObject.disconnectWifiAP
        connectionStart = 
    DateTime.Now
        
    Do Until myMLWifiObject.isWifiConnected = False
            
    Log("Waiting for Disconnect..." & (DateTime.Now - (connectionStart + connectionTimeOut)))
            Sleep(
    0)
            
    If DateTime.Now > connectionStart + connectionTimeOut Then
                
    Log("DISCONNECT FAILED")
                
    Return
            
    End If
        
    Loop
          
        
    Log("Call to connect to " & selectedSSID & " returned " & myMLWifiObject.connectWifiAP(selectedSSID))
        
    Log("The current SSID is " & myMLWifiObject.WifiSSID)
      
        connectionStart = 
    DateTime.Now
        
    Do Until myMLWifiObject.isWifiConnected
            
    Log("Waiting for MLWifi to connect..." & (DateTime.Now - (connectionStart + connectionTimeOut)))
            Sleep(
    0)
            
    If DateTime.Now > connectionStart + connectionTimeOut Then
                
    Log("CONNECTION FAILED")
                
    Log("Now MLwifi is connected to " & myMLWifiObject.WifiSSID)
                
    Return
            
    End If
        
    Loop
        
    Log("Managed to connect to " & myMLWifiObject.WifiSSID)
        
    Log("Asked to connect to " & selectedSSID)
        
    If myMLWifiObject.WifiSSID <> selectedSSID Then
            
    Log("Wrong SSID!!!")
        
    Else
            
    Log("Correct SSID - hurrah")
        
    End If
        
    ToastMessageShow(myMLWifiObject.ActiveNetworkTypeName,False)
      
    End Sub
     
  2. Michael Wenning

    Michael Wenning Member Licensed User

    Have you turned on location of the phone?

    Regards
    Michael
     
Loading...
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice