Italian Verificare connessione a Internet

Giacomo

Active Member
Licensed User
Longtime User
Ciao a tutti

esiste un modo semplice (b4j) per capire se il mio PC ha una connessione a internet attiva ?

In pratica la mia applicazione dovrebbe avere una "Lucetta" verde se esiste una connessione e rossa se la connessione è mancante o interrotta

Grazie
 

LucaMs

Expert
Licensed User
Longtime User
Per B4A, l'unica cosa che ho trovato è stata tentare di scaricare un "sito leggero" (Google.it), non so se poi ci sia di meglio (lo spero).

Tantomeno so se esista di meglio tramite B4J.

Bella risposta, potevo risparmiarmela :p
 

Giacomo

Active Member
Licensed User
Longtime User
Grazie Comunque,
Sei sempre prezioso
Vado un pò in giro e vedo cosa trovo ;)
 

LucaMs

Expert
Licensed User
Longtime User
Ho appena scritto una stupidissima libreria che fa proprio quanto ti dicevo (suggerimento di Erel, download di Google.it).
[Se trovi una soluzione migliore, fischia, mi raccomando :D]

B4X:
Sub Process_Globals
   Private mCheckInternet As lmCheckInternet
End Sub

Sub Activity_Create(FirstTime As Boolean)
   mCheckInternet.Initialize(Me , "") ' <--- passing an empty string, Google.it will be used
End Sub

Sub btnCheckInternet_Click
   mCheckInternet.Check
End Sub


Private Sub CheckInternet(InternetOK As Boolean) 'ignore
    ToastMessageShow("Internet: " & InternetOK, True)
End Sub


P.S. Ops, non è stupidissima in quanto suggerita da Erel, ovviamente :D


[Modificata affinché JobDone non sia disponibile, è una routine privata]
[Altra modifica: data la possibilità di scegliere un sito diverso (magari il proprio) quindi modificato anche l'esempio. Non so, per adesso ;), come impostare la versione a 1.1 fatto]
 

Attachments

  • lmCheckInternet.zip
    2.6 KB · Views: 242
Last edited:

Giacomo

Active Member
Licensed User
Longtime User
Grandioso ! FUNGE..
Ora però devo scavalcare il firewall , in alcune configurazioni non mi fà uscire in FTP ... palle ogni giorno un problema nuovo ...
 

Giacomo

Active Member
Licensed User
Longtime User
Grazie ... ti faccio sapere appena ho le idee un pò più chiare
:confused:
 

Giacomo

Active Member
Licensed User
Longtime User
Alla Fine Ho fatto così ...
B4X:
Sub Process_Globals
    Private fx As JFX
    Private MainForm As Form
    Private Image_1 As ImageView
    Private T As Timer
    Private Conn As ServerSocket
End Sub

Sub AppStart (Form1 As Form, Args() As String)
    MainForm = Form1
    MainForm.SetFormStyle("UNIFIED")
    MainForm.RootPane.LoadLayout("1") 'Load the layout file.
    MainForm.Show
    Conn.Initialize(0,"")

    T.Initialize("TIC", 1000)
    T.Enabled=True
End Sub

'Evento Tick
Sub TIC_Tick
    If Conn.GetMyIP.Length > 15 Then
            'Carica Luce Rossa
            Image_1.SetImage(fx.LoadImage(File.DirAssets,"cross.png"))
        Else
            'Carica Luce Verde
            Image_1.SetImage(fx.LoadImage(File.DirAssets,"accept_button.png"))
    End If
   
End Sub

Non oso pensare ai casini che può creare ...Ma per il mio scopo funge ;)

Suggerimenti ??
 

LucaMs

Expert
Licensed User
Longtime User
Quale suggerimento sì.

Intanto non mi piacciono le variabili anonime come T: meglio tmrTestMyIP.

Poi, se dovesse impiegare oltre 1 secondo per connettersi? Tanto vale scrivere il codice dell'evento Tick direttamente nella AppStart, o no?
 

Giacomo

Active Member
Licensed User
Longtime User
Intanto non mi piacciono le variabili anonime come T: meglio tmrTestMyIP.
OK Suggerimento Recepito ... Grazie

Poi, se dovesse impiegare oltre 1 secondo per connettersi?

Era solo per provare velocemente in realtà nella mia App controllo ogni 15 - 20 secondi e se non riesce a darmi luce verde al primo giro lo farà al secondo Tick

Tanto vale scrivere il codice dell'evento Tick direttamente nella AppStart, o no?

Perdonami ... ma questa non l'ho proprio capita ,se metto il mio codice nell' AppStart ( e basta !) come temporizzo il controllo?
 

Giacomo

Active Member
Licensed User
Longtime User
E io che ne so che devi usarlo a tempo? :D

Giusto non potevi sapere che installo l' App su un PC con Sim interna ( Vodafone :mad: ) che perde la linea ogni 2 x 3 ...

A prescindere da questo come la vedi questa soluzione ?
( ci tengo molto al tuo giudizio ):)
 
Top