#Region Service Attributes
#StartAtBoot: True
#End Region
Sub Process_Globals
'These global variables will be declared once when the application starts.
'These variables can be accessed from all modules.
Dim BroadCast As BroadCastReceiver
Dim ForegroundGiaAvviato As Boolean = False
End Sub
Sub Service_Create
BroadCast.Initialize("BroadcastReceiver")
BroadCast.addAction("android.net.conn.CONNECTIVITY_CHANGE")
BroadCast.SetPriority(2147483647)
BroadCast.registerReceiver("")
End Sub
Sub BroadcastReceiver_OnReceive (Action As String, i As Object) 'https://www.b4x.com/android/forum/threads/broadcastreceiver.12493/
AvviaIlForeground
Dim retIn As Intent
retIn = i
Dim IsConnected As String
If Action = "android.net.conn.CONNECTIVITY_CHANGE" Then
Dim jo As JavaObject = retIn
If jo.IsInitialized Then
Dim NetworkInfo As JavaObject = jo.RunMethod("getParcelableExtra", Array("networkInfo"))
If NetworkInfo.IsInitialized Then
IsConnected = NetworkInfo.RunMethod("getState", Null)
If IsConnected.EqualsIgnoreCase("CONNECTED") Then
'ToastMessageShow("Connesso", False)
If (DateTime.Now - Starter.TickUltimoVoltaCheLaConnessioneEraDisponibile) > 2 * DateTime.TicksPerMinute Then
Starter.TickUltimoVoltaCheLaConnessioneEraDisponibile = DateTime.Now
CallSubDelayed(Starter, "Verifica_SeCiSonoDatiInLocaleDaInviareAlServer")
End If
Else
'ToastMessageShow("Disconnesso", False)
End If
Else
Starter.TickUltimoVoltaCheLaConnessioneEraDisponibile = DateTime.Now
CallSubDelayed(Starter, "Verifica_SeCiSonoDatiInLocaleDaInviareAlServer")
End If
Else
Starter.TickUltimoVoltaCheLaConnessioneEraDisponibile = DateTime.Now
CallSubDelayed(Starter, "Verifica_SeCiSonoDatiInLocaleDaInviareAlServer")
End If
End If
BroadCast.AbortBroadcast
FermaIlForeground
End Sub
Sub Service_Start (StartingIntent As Intent)
AvviaIlForeground
StartServiceAt(Me, DateTime.Now + 10*DateTime.TicksPerMinute, True)
FermaIlForeground
End Sub
Sub Service_Destroy
End Sub
Sub AvviaIlForeground
If ForegroundGiaAvviato == False Then
Dim n As Notification
n.Initialize2(n.IMPORTANCE_LOW)
n.Icon = "notifica_generica"
n.Light = False
n.Sound = False
n.Vibrate = False
Try
n.SetInfo2(Starter.MappaEtichette.Get("NotificaDiSistema_check_Titolo"), Starter.MappaEtichette.Get("NotificaDiSistema_check_Testo"), "Visualizza_SpiegazioneNotificaGenerica", Main)
Catch
n.SetInfo2("Ever", "Loading...", "Visualizza_SpiegazioneNotificaGenerica", Main)
CallSubDelayed2(Starter, "Logga_AnomaliaGestita", "Anomalia in AvviaIlForeground del BroadcastReceiverService")
End Try
Service.StartForeground(100, n)
ForegroundGiaAvviato = True
End If
End Sub
Sub FermaIlForeground
Service.StopForeground(100)
ForegroundGiaAvviato = False
End Sub