Spanish [Solucionado] saber si hay conexion de datos (red o wifi)

cas6678

Active Member
Licensed User
Longtime User
Hola a todos

Tengo en mi app un sitio donde muestro una pagina web. Me gustaria en el caso de no haber conexion de datos, sea por wifi o red, que me mostrara otra cosa en vez del cartel de android diciendo que no hay conexion. Cual es el metodo para obtener ese dato de manera de poder con un IF hacer una cosa o la otra?
 

josejad

Expert
Licensed User
Longtime User
Hola:

Yo uso la sub ph_ConnectivityChanged de este post, así que puedo hacer:
If ph_ConnectivityChanged Then...


saludos,
 

cas6678

Active Member
Licensed User
Longtime User
B4X:
Sub Process_Globals
    Dim InternetConnected As Boolean, ph As PhoneEvents
End Sub

Sub Service_Create
    ph.Initialize("ph")
End Sub


Sub ph_ConnectivityChanged (NetworkType As String, State As String, Intent As Intent)
    If State = "CONNECTED" Then
        InternetConnected = True
    Else   
        InternetConnected = False
    End If
End Sub

y luego leo InternetConnected desde donde necesite. Muchas gracias, sencillo y funciona OK.
 

TILogistic

Expert
Licensed User
Longtime User
B4X:
Sub Process_Globals
    Dim InternetConnected As Boolean, ph As PhoneEvents
End Sub

Sub Service_Create
    ph.Initialize("ph")
End Sub


Sub ph_ConnectivityChanged (NetworkType As String, State As String, Intent As Intent)
    If State = "CONNECTED" Then
        InternetConnected = True
    Else 
        InternetConnected = False
    End If
End Sub

y luego leo InternetConnected desde donde necesite. Muchas gracias, sencillo y funciona OK.

Esto no garantiza que estas conectado a internet, solo indica si estas conectado a una red (que puede ser local 192.168.x.x).

te sugiero usar esto con otra solución:

ejemplo se discute aquí.


 

cas6678

Active Member
Licensed User
Longtime User
Ok, entendido, en cualquier caso para lo que quiero me vale. Entiendo que si estoy en una red local sin datos externos me aparecera como "conectado" aunque no tenga internet. Gracias.
 

Bladimir Silva Toro

Active Member
Licensed User
Longtime User
No sabia que existía eso yo siempre hago un petición a San Google el santo de mi devoción y siempre me ha funcionado sin problemas

B4X:
Sub ConexionInternet() As ResumableSub
    Dim j As HttpJob
    j.Initialize("", Me) 'name is empty as it is no longer needed
    j.Download("http://www.google.com")
    j.GetRequest.Timeout = 3000
    Log(j.GetRequest.Timeout)
    Wait For (j) JobDone(j As HttpJob)
    If j.Success Then
        MsgboxAsync("Conectado a Internet","Felicitaciones!!!")
    Else
        MsgboxAsync("Verifique Su Conexion a Internet","Advertencia!!!")
        Wait For MsgBox_Result (Result As Int)
        If Result = DialogResponse.POSITIVE Then
            ExitApplication
        End If
    End If
    j.Release
End Sub
 

jGubern

Member
Licensed User
Longtime User
Perfecto, me gusta!!
Librería OkHttpUtils2 por si hay algún despistado como yo ;)
Saludos.
 
Top