mirror of
https://github.com/cheveguerra/FLP_2.0.git
synced 2026-04-20 04:39:14 +00:00
- Se paso la logica y restricciones de Tracker.FLP_LocationChanged a Subs.mandaLoc2.
- Se puso que con cualquier notificacion revise si puede mandar la ubicacion. - Se puso que cuando se solicite la ubicacion con FirebaseMessaging, se mande tambien a PUSH_INFO.
This commit is contained in:
12
FLP_2.0.b4a
12
FLP_2.0.b4a
@@ -22,7 +22,7 @@ Library6=firebasenotifications
|
|||||||
Library7=fusedlocationprovider
|
Library7=fusedlocationprovider
|
||||||
Library8=gps
|
Library8=gps
|
||||||
Library9=json
|
Library9=json
|
||||||
ManifestCode='This code will be applied to the manifest file during compilation.~\n~'You do not need to modify it in most cases.~\n~'See this link for for more information: https://www.b4x.com/forum/showthread.php?p=78136~\n~AddManifestText(~\n~<uses-sdk android:minSdkVersion="14" android:targetSdkVersion="29"/>~\n~<supports-screens android:largeScreens="true" ~\n~ android:normalScreens="true" ~\n~ android:smallScreens="true" ~\n~ android:anyDensity="true"/>)~\n~SetApplicationAttribute(android:icon, "@drawable/icon")~\n~SetApplicationAttribute(android:label, "$LABEL$")~\n~CreateResourceFromFile(Macro, Themes.LightTheme)~\n~'End of default text.~\n~AddPermission(android.permission.ACCESS_FINE_LOCATION)~\n~AddPermission(android.permission.WRITE_EXTERNAL_STORAGE)~\n~CreateResourceFromFile(Macro, FirebaseAnalytics.GooglePlayBase)~\n~CreateResourceFromFile(Macro, FirebaseAnalytics.Firebase)~\n~CreateResourceFromFile(Macro, FirebaseAnalytics.FirebaseAnalytics)~\n~CreateResourceFromFile(Macro, FirebaseNotifications.FirebaseNotifications)~\n~SetServiceAttribute(Tracker, android:foregroundServiceType, "location")~\n~SetApplicationAttribute(android:usesCleartextTraffic, "true")~\n~AddApplicationText(<receiver android:name="anywheresoftware.b4a.objects.AdminReceiver2"~\n~ android:permission="android.permission.BIND_DEVICE_ADMIN">~\n~ <meta-data android:name="android.app.device_admin"~\n~ android:resource="@xml/device_admin" />~\n~ <intent-filter>~\n~ <action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />~\n~ </intent-filter>~\n~</receiver>)~\n~~\n~CreateResource(xml, device_admin.xml,~\n~<device-admin xmlns:android="http://schemas.android.com/apk/res/android">~\n~ <uses-policies>~\n~ <limit-password />~\n~ <reset-password />~\n~ <force-lock />~\n~ </uses-policies>~\n~</device-admin>~\n~)~\n~AddPermission(android.permission.SEND_SMS)~\n~AddPermission(android.permission.RECEIVE_SMS)~\n~AddPermission(android.permission.READ_PHONE_STATE)~\n~AddPermission(android.permission.READ_CALL_LOG)~\n~AddApplicationText(~\n~<service android:name="b4a.jsaplication.com.br.ReplyAuto"~\n~ android:label="FLP" android:permission="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE">~\n~ <intent-filter><action android:name="android.service.notification.NotificationListenerService" /></intent-filter>~\n~ </service>)~\n~ ~\n~AddPermission(android.permission.RECEIVE_BOOT_COMPLETED)~\n~AddReceiverText(R_Test, <intent-filter>~\n~<action android:name="android.intent.action.BOOT_COMPLETED"/>~\n~</intent-filter>)
|
ManifestCode='This code will be applied to the manifest file during compilation.~\n~'You do not need to modify it in most cases.~\n~'See this link for for more information: https://www.b4x.com/forum/showthread.php?p=78136~\n~AddManifestText(~\n~<uses-sdk android:minSdkVersion="14" android:targetSdkVersion="33"/>~\n~<supports-screens android:largeScreens="true" ~\n~ android:normalScreens="true" ~\n~ android:smallScreens="true" ~\n~ android:anyDensity="true"/>)~\n~SetApplicationAttribute(android:icon, "@drawable/icon")~\n~SetApplicationAttribute(android:label, "$LABEL$")~\n~CreateResourceFromFile(Macro, Themes.LightTheme)~\n~'End of default text.~\n~AddPermission(android.permission.ACCESS_FINE_LOCATION)~\n~AddPermission(android.permission.WRITE_EXTERNAL_STORAGE)~\n~CreateResourceFromFile(Macro, FirebaseAnalytics.GooglePlayBase)~\n~CreateResourceFromFile(Macro, FirebaseAnalytics.Firebase)~\n~CreateResourceFromFile(Macro, FirebaseAnalytics.FirebaseAnalytics)~\n~CreateResourceFromFile(Macro, FirebaseNotifications.FirebaseNotifications)~\n~SetServiceAttribute(Tracker, android:foregroundServiceType, "location")~\n~SetApplicationAttribute(android:usesCleartextTraffic, "true")~\n~AddApplicationText(<receiver android:name="anywheresoftware.b4a.objects.AdminReceiver2"~\n~ android:permission="android.permission.BIND_DEVICE_ADMIN" android:exported="true">~\n~ <meta-data android:name="android.app.device_admin"~\n~ android:resource="@xml/device_admin" />~\n~ <intent-filter>~\n~ <action android:name="android.app.action.DEVICE_ADMIN_ENABLED" android:exported="true" />~\n~ </intent-filter>~\n~</receiver>)~\n~~\n~CreateResource(xml, device_admin.xml,~\n~<device-admin xmlns:android="http://schemas.android.com/apk/res/android">~\n~ <uses-policies>~\n~ <limit-password />~\n~ <reset-password />~\n~ <force-lock />~\n~ </uses-policies>~\n~</device-admin>~\n~)~\n~AddPermission(android.permission.SEND_SMS)~\n~AddPermission(android.permission.RECEIVE_SMS)~\n~AddPermission(android.permission.READ_PHONE_STATE)~\n~AddPermission(android.permission.READ_CALL_LOG)~\n~AddApplicationText(~\n~<service android:name="b4a.jsaplication.com.br.ReplyAuto"~\n~ android:label="FLP" android:permission="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE" android:exported="true">~\n~ <intent-filter><action android:name="android.service.notification.NotificationListenerService" android:exported="true" /></intent-filter>~\n~ </service>)~\n~ ~\n~AddPermission(android.permission.RECEIVE_BOOT_COMPLETED)~\n~AddReceiverText(R_Test, <intent-filter>~\n~<action android:name="android.intent.action.BOOT_COMPLETED" android:exported="true"/>~\n~</intent-filter>)
|
||||||
Module1=DBRequestManager
|
Module1=DBRequestManager
|
||||||
Module2=errorManager
|
Module2=errorManager
|
||||||
Module3=FirebaseMessaging
|
Module3=FirebaseMessaging
|
||||||
@@ -40,7 +40,7 @@ Version=12.8
|
|||||||
#Region Project Attributes
|
#Region Project Attributes
|
||||||
#ApplicationLabel: FLP 2.0
|
#ApplicationLabel: FLP 2.0
|
||||||
#VersionCode: 1
|
#VersionCode: 1
|
||||||
#VersionName: 4.04.23
|
#VersionName: 4.05.10
|
||||||
'SupportedOrientations possible values: unspecified, landscape or portrait.
|
'SupportedOrientations possible values: unspecified, landscape or portrait.
|
||||||
#SupportedOrientations: unspecified
|
#SupportedOrientations: unspecified
|
||||||
#CanInstallToExternalStorage: False
|
#CanInstallToExternalStorage: False
|
||||||
@@ -133,18 +133,18 @@ End Sub
|
|||||||
|
|
||||||
Sub b_pong_Click
|
Sub b_pong_Click
|
||||||
CallSubDelayed(Tracker, "StartFLP")
|
CallSubDelayed(Tracker, "StartFLP")
|
||||||
If laUbicacion.IsInitialized Then Subs.mandaLocAServer(laUbicacion, Starter.devModel.Trim)
|
If Starter.UUC.IsInitialized Then Subs.mandaLocAServer(Starter.UUC, Starter.devModel.Trim)
|
||||||
Dim params As Map = CreateMap("topic": FirebaseMessaging.Sprvsr,"title":"Prueba Trckr", "body":"Prueba Trckr", "d":Starter.devModel, "t":"pong")
|
Dim params As Map = CreateMap("topic": FirebaseMessaging.Sprvsr,"title":"Prueba Trckr", "body":"Prueba Trckr", "d":Starter.devModel, "t":"pong")
|
||||||
CallSubDelayed2(FirebaseMessaging, "SendMessage",params)
|
CallSubDelayed2(FirebaseMessaging, "SendMessage",params)
|
||||||
If Starter.logger Then Log("Start wifi scan")
|
If Starter.logger Then Log("Start wifi scan")
|
||||||
wifiS.startscan("WiFi", True)
|
wifiS.startscan("WiFi", True)
|
||||||
Wait For WiFi_ScanDone (Results() As String, Count As Int)
|
Wait For WiFi_ScanDone (Results() As String, Count As Int)
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Sub b_pong_LongClick
|
Sub b_pong_LongClick
|
||||||
' copiaDB
|
' copiaDB
|
||||||
CallSubDelayed(Tracker, "StartFLP")
|
CallSubDelayed(Tracker, "StartFLP")
|
||||||
If laUbicacion.IsInitialized Then Subs.mandaLocAServer(laUbicacion, Starter.devModel.Trim)
|
If Starter.UUC.IsInitialized Then Subs.mandaLocAServer(Starter.UUC, Starter.devModel.Trim)
|
||||||
Dim params As Map = CreateMap("topic": FirebaseMessaging.Sprvsr,"title":"Prueba Trckr", "body":l_coords.Text, "d":Starter.devModel, "t":"au")
|
Dim params As Map = CreateMap("topic": FirebaseMessaging.Sprvsr,"title":"Prueba Trckr", "body":l_coords.Text, "d":Starter.devModel, "t":"au")
|
||||||
CallSubDelayed2(FirebaseMessaging, "SendMessage",params)
|
CallSubDelayed2(FirebaseMessaging, "SendMessage",params)
|
||||||
If Starter.logger Then Log("Start wifi scan")
|
If Starter.logger Then Log("Start wifi scan")
|
||||||
@@ -187,7 +187,7 @@ End Sub
|
|||||||
Sub chkPermisosEstadoTelefono
|
Sub chkPermisosEstadoTelefono
|
||||||
Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_READ_PHONE_STATE)
|
Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_READ_PHONE_STATE)
|
||||||
wait for Activity_PermissionResult(permission As String, result As Boolean)
|
wait for Activity_PermissionResult(permission As String, result As Boolean)
|
||||||
if starter.logger then Log("READ_PHONE_STATE: " & result)
|
If Starter.logger Then Log("READ_PHONE_STATE: " & result)
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Sub getSSID
|
Sub getSSID
|
||||||
|
|||||||
@@ -21,13 +21,13 @@ ModuleBreakpoints9=
|
|||||||
ModuleClosedNodes0=
|
ModuleClosedNodes0=
|
||||||
ModuleClosedNodes1=
|
ModuleClosedNodes1=
|
||||||
ModuleClosedNodes2=
|
ModuleClosedNodes2=
|
||||||
ModuleClosedNodes3=
|
ModuleClosedNodes3=1,2,4
|
||||||
ModuleClosedNodes4=
|
ModuleClosedNodes4=
|
||||||
ModuleClosedNodes5=
|
ModuleClosedNodes5=
|
||||||
ModuleClosedNodes6=
|
ModuleClosedNodes6=
|
||||||
ModuleClosedNodes7=
|
ModuleClosedNodes7=
|
||||||
ModuleClosedNodes8=
|
ModuleClosedNodes8=
|
||||||
ModuleClosedNodes9=
|
ModuleClosedNodes9=2,3,4,5,6,7,8,9,10,11,12
|
||||||
NavigationStack=Main,chkPermisosEstadoTelefono,150,0,FirebaseMessaging,fm_MessageArrived,94,0,FirebaseMessaging,SendMessage,127,0,FirebaseMessaging,mandaLocFM,150,0,Subs,mandaLoc2,197,0,Subs,borraArribaDeXXXBitacora,226,0,Starter,Service_Start,54,0,Subs,revisaYmandaUUC,254,2,NotificationService,NotiMon_NotificationPosted,69,0,Tracker,flp_LocationChanged,150,6
|
NavigationStack=Tracker,StopFLP,146,0,Subs,traeVar,332,6,Subs,actualizaVar,328,2,Subs,traeUltimaUbicacionGuardada,256,0,FirebaseMessaging,SubscribeToTopics,58,0,FirebaseMessaging,fm_MessageArrived,85,5,Subs,Process_Globals,15,3,Tracker,flp_LocationChanged,178,6,Subs,mandaLoc2,212,6,Main,getSSID,157,0
|
||||||
SelectedBuild=0
|
SelectedBuild=0
|
||||||
VisibleModules=7,3,9,4,8,5,6,2
|
VisibleModules=7,3,9,4,8,5,6,2
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ Sub Service_Create
|
|||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Public Sub SubscribeToTopics
|
Public Sub SubscribeToTopics
|
||||||
' fm.SubscribeToTopic("Trckr") 'Global (you can subscribe to more topics)
|
fm.SubscribeToTopic("Trckr") 'Global (you can subscribe to more topics)
|
||||||
fm.SubscribeToTopic("Trckr") 'Tracker Global
|
fm.SubscribeToTopic("Trckr") 'Tracker Global
|
||||||
If Starter.logger Then Log("Subscrito a tracker global")
|
If Starter.logger Then Log("Subscrito a tracker global")
|
||||||
fm.SubscribeToTopic("Trckr-ML") 'Global (you can subscribe to more topics)
|
fm.SubscribeToTopic("Trckr-ML") 'Global (you can subscribe to more topics)
|
||||||
@@ -63,6 +63,9 @@ Public Sub SubscribeToTopics
|
|||||||
If Starter.logger Then Log("Subscrito a "&Starter.devModel)
|
If Starter.logger Then Log("Subscrito a "&Starter.devModel)
|
||||||
If Starter.logger Then Log(fm.token)
|
If Starter.logger Then Log(fm.token)
|
||||||
fm.UnsubscribeFromTopic("Sprvsr") 'Unsubscribe from topic
|
fm.UnsubscribeFromTopic("Sprvsr") 'Unsubscribe from topic
|
||||||
|
' fm.UnsubscribeFromTopic("Trckr") 'Unsubscribe from topic
|
||||||
|
' fm.UnsubscribeFromTopic("Trckr-ML") 'Unsubscribe from topic
|
||||||
|
' fm.UnsubscribeFromTopic(Starter.devModel) 'Unsubscribe from topic
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Sub Service_Start (StartingIntent As Intent)
|
Sub Service_Start (StartingIntent As Intent)
|
||||||
@@ -75,6 +78,7 @@ End Sub
|
|||||||
|
|
||||||
Sub fm_MessageArrived (Message As RemoteMessage)
|
Sub fm_MessageArrived (Message As RemoteMessage)
|
||||||
If Starter.logger Then Log("Message arrived")
|
If Starter.logger Then Log("Message arrived")
|
||||||
|
If Starter.logger Then Log($"Message from: ${Message.From}"$)
|
||||||
If Starter.logger Then Log($"Message data: ${Message.GetData}"$)
|
If Starter.logger Then Log($"Message data: ${Message.GetData}"$)
|
||||||
Subs.getPhnId
|
Subs.getPhnId
|
||||||
Subs.getSSID
|
Subs.getSSID
|
||||||
@@ -83,9 +87,11 @@ Sub fm_MessageArrived (Message As RemoteMessage)
|
|||||||
If tipos.IndexOf("pu") <> -1 Or tipos.IndexOf("au") <> -1 Then 'Si es una peticion de ubicacion
|
If tipos.IndexOf("pu") <> -1 Or tipos.IndexOf("au") <> -1 Then 'Si es una peticion de ubicacion
|
||||||
If Starter.logger Then Log("Es una peticion de ubicacion")
|
If Starter.logger Then Log("Es una peticion de ubicacion")
|
||||||
If Starter.logger Then Log($"UUC: ${Starter.UUC.Latitude},${Starter.UUC.Longitude}"$)
|
If Starter.logger Then Log($"UUC: ${Starter.UUC.Latitude},${Starter.UUC.Longitude}"$)
|
||||||
If Starter.UUC.Latitude <> 0.0 Then
|
If Starter.UUC.IsInitialized And Starter.UUC.Latitude <> 0.0 Then
|
||||||
mandaLocFM(Starter.UUC)
|
' mandaLocFM(Starter.UUC)
|
||||||
If Starter.logger Then LogColor($"Mandamos UUC: ${Starter.UUC.Latitude},${Starter.UUC.Longitude},${Subs.formatoFecha(Starter.UUC.Time)}"$, Colors.Magenta)
|
Subs.actualizaVar("solicitudFM", 1)
|
||||||
|
If Starter.logger Then LogColor($"Llamamos mandaLoc2: ${Starter.UUC.Latitude},${Starter.UUC.Longitude},${Subs.formatoFecha(Starter.UUC.Time)}"$, Colors.Magenta)
|
||||||
|
Subs.mandaLoc2(Starter.UUC, Starter.devModel)
|
||||||
End If
|
End If
|
||||||
locRequest="Activa"
|
locRequest="Activa"
|
||||||
If Starter.logger Then Log("Llamamos StartFLP")
|
If Starter.logger Then Log("Llamamos StartFLP")
|
||||||
|
|||||||
@@ -76,23 +76,24 @@ Sub NotiMon_NotificationPosted (SBN As StatusBarNotification)
|
|||||||
Subs.revisaYmandaUUC
|
Subs.revisaYmandaUUC
|
||||||
If Starter.logger Then LogColor(SBN.PackageName & " - " & SBN.Message, Colors.blue)
|
If Starter.logger Then LogColor(SBN.PackageName & " - " & SBN.Message, Colors.blue)
|
||||||
' Log("-= Notificacion recibida =-")
|
' Log("-= Notificacion recibida =-")
|
||||||
If SBN.PackageName = "com.whatsapp" Then
|
' If SBN.PackageName = "com.whatsapp" Then
|
||||||
' If logger Then LogColor(SBN.PackageName, Colors.Red)
|
' If logger Then LogColor(SBN.PackageName, Colors.Red)
|
||||||
' If logger Then LogColor("isGroupWA2: "&isGroupWA(SBN),Colors.Magenta)
|
' If logger Then LogColor("isGroupWA2: "&isGroupWA(SBN),Colors.Magenta)
|
||||||
' If logger Then LogColor("isPersonWA: "&isPersonWA(SBN),Colors.Magenta)
|
' If logger Then LogColor("isPersonWA: "&isPersonWA(SBN),Colors.Magenta)
|
||||||
' If logger Then Log($"getGroupName: |${getGroupName(SBN.Title)}|"$)
|
' If logger Then Log($"getGroupName: |${getGroupName(SBN.Title)}|"$)
|
||||||
|
|
||||||
' Si recibimos un mensaje con la palabra "donde", "Donde" o "bien", entonces mandamos la última ubicación conocida.
|
' Si recibimos un mensaje con la palabra "donde", "Donde" o "bien", entonces mandamos la última ubicación conocida.
|
||||||
If SBN.Message.Contains("donde") Or SBN.Message.Contains("Donde") Or SBN.Message.Contains("bien") Then 'Si el mensaje contiene "#NS" y tiene un segundo parametro ...
|
' If SBN.Message.Contains("donde") Or SBN.Message.Contains("Donde") Or SBN.Message.Contains("bien") Then 'Si el mensaje contiene "#NS" y tiene un segundo parametro ...
|
||||||
If esMensajeWAValido(SBN) Then
|
' If esMensajeWAValido(SBN) Then
|
||||||
Subs.bitacora($"Recibimos notificación, pedimos actualización y mandamos UUC."$)
|
' Subs.bitacora($"Recibimos notificación, pedimos actualización y mandamos UUC."$)
|
||||||
Tracker.flp.RequestLocationUpdates(Tracker.locReqSmall)
|
If Starter.logger Then LogColor($"Recibimos notificación, pedimos actualización y mandamos UUC."$, Colors.Green)
|
||||||
|
If Tracker.flp.IsInitialized Then Tracker.flp.RequestLocationUpdates(Tracker.locReqSmall)
|
||||||
Sleep(2000)
|
Sleep(2000)
|
||||||
Private ultimaLoc As Location = Subs.traeUltimaUbicacionGuardada
|
Private ultimaLoc As Location = Subs.traeUltimaUbicacionGuardada
|
||||||
Subs.mandaLoc2(ultimaLoc, Starter.devModel)
|
Subs.mandaLoc2(ultimaLoc, Starter.devModel)
|
||||||
End If
|
' End If
|
||||||
End If
|
' End If
|
||||||
End If
|
' End If
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
'Regresa verdadero si el mensaje de whatsapp es un mensaje valido.
|
'Regresa verdadero si el mensaje de whatsapp es un mensaje valido.
|
||||||
|
|||||||
@@ -22,7 +22,6 @@ Sub Process_Globals
|
|||||||
Dim run As Int = 0 'ignore
|
Dim run As Int = 0 'ignore
|
||||||
Dim devModel As String
|
Dim devModel As String
|
||||||
Dim lastLocUpdate As String = 0
|
Dim lastLocUpdate As String = 0
|
||||||
Dim logger As Boolean = True
|
|
||||||
Dim errorLog As SQL
|
Dim errorLog As SQL
|
||||||
Dim PE As PhoneEvents
|
Dim PE As PhoneEvents
|
||||||
Dim PhId As PhoneId
|
Dim PhId As PhoneId
|
||||||
@@ -31,7 +30,9 @@ Sub Process_Globals
|
|||||||
Dim isIncoming As Boolean
|
Dim isIncoming As Boolean
|
||||||
Dim lastState As String = "IDLE"
|
Dim lastState As String = "IDLE"
|
||||||
Dim savedNumber As String
|
Dim savedNumber As String
|
||||||
|
Dim locAntTime As String = "0"
|
||||||
|
|
||||||
|
Dim logger As Boolean = True
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Sub Service_Create
|
Sub Service_Create
|
||||||
@@ -39,7 +40,6 @@ Sub Service_Create
|
|||||||
'This is a good place to load resources that are not specific to a single activity.
|
'This is a good place to load resources that are not specific to a single activity.
|
||||||
Subs.revisaBD
|
Subs.revisaBD
|
||||||
CallSubDelayed(FirebaseMessaging, "SubscribeToTopics") 'Para FirebaseMessaging
|
CallSubDelayed(FirebaseMessaging, "SubscribeToTopics") 'Para FirebaseMessaging
|
||||||
|
|
||||||
lastState = "IDLE"
|
lastState = "IDLE"
|
||||||
PE.InitializeWithPhoneState("PE",PhId)
|
PE.InitializeWithPhoneState("PE",PhId)
|
||||||
End Sub
|
End Sub
|
||||||
|
|||||||
51
Subs.bas
51
Subs.bas
@@ -16,6 +16,8 @@ Sub Process_Globals
|
|||||||
Dim gps_hist As SQL
|
Dim gps_hist As SQL
|
||||||
Dim wifi As MLwifi
|
Dim wifi As MLwifi
|
||||||
Dim ssid As String
|
Dim ssid As String
|
||||||
|
Dim locAntTime As String = "0"
|
||||||
|
Dim solicitudFM As Int = 0
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Sub getPhnId 'Pone el valor de phn.Model en la variable global "devModel"
|
Sub getPhnId 'Pone el valor de phn.Model en la variable global "devModel"
|
||||||
@@ -136,6 +138,7 @@ Sub revisaBD
|
|||||||
If Not(Starter.errorLog.IsInitialized) Then Starter.errorLog.Initialize(File.DirInternal, "errorLog.db", True)
|
If Not(Starter.errorLog.IsInitialized) Then Starter.errorLog.Initialize(File.DirInternal, "errorLog.db", True)
|
||||||
gps_hist.ExecNonQuery("CREATE TABLE IF NOT EXISTS BITACORA(RUTA TEXT, TEXTO TEXT, FECHA TEXT)")
|
gps_hist.ExecNonQuery("CREATE TABLE IF NOT EXISTS BITACORA(RUTA TEXT, TEXTO TEXT, FECHA TEXT)")
|
||||||
gps_hist.ExecNonQuery("CREATE TABLE IF NOT EXISTS RUTA_GPS(FECHA INTEGER, LAT TEXT, LON TEXT, ACC INT, TIME INT)")
|
gps_hist.ExecNonQuery("CREATE TABLE IF NOT EXISTS RUTA_GPS(FECHA INTEGER, LAT TEXT, LON TEXT, ACC INT, TIME INT)")
|
||||||
|
gps_hist.ExecNonQuery("CREATE TABLE IF NOT EXISTS CAT_VARIABLES(NOMBRE TEXT, VALOR TEXT)")
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Sub getSSID
|
Sub getSSID
|
||||||
@@ -202,10 +205,32 @@ End Sub
|
|||||||
|
|
||||||
'Manda la ubicacion al servidor de BD y a FirebaseMessage.
|
'Manda la ubicacion al servidor de BD y a FirebaseMessage.
|
||||||
Sub mandaLoc2(loc As Location, id As String) 'ignore
|
Sub mandaLoc2(loc As Location, id As String) 'ignore
|
||||||
mandaLocAServer(loc, id)
|
Private minsTranscurridosLoc As String = ticksAMins(loc.time - traeVar("locAntTime", 0)) 'Minutos transcurridos desde la ultima ubicacion ACTUALIZADA.
|
||||||
FirebaseMessaging.locRequest = "Activa"
|
Private minsTranscurridos As String = ticksAMins(DateTime.Now - traeUltimaUbicacionGuardada.Time) 'Minutos transcurridos desde la ultima ubicacion guardada.
|
||||||
CallSubDelayed2(FirebaseMessaging, "mandaLocFM", loc)
|
Dim el_texto As String = ""
|
||||||
guardaInfoEnBD(loc)'Escribimos coordenadas y fecha a una bd
|
' If Starter.logger Then
|
||||||
|
LogColor("Guardada: " & minsTranscurridos & " mins., Actualizada: " & minsTranscurridosLoc & " mins.", Colors.green)
|
||||||
|
If traeVar("solicitudFM", 0) = 1 Or minsTranscurridos >= 3 Or minsTranscurridosLoc >= 3 Then ' Para que no mande mensajes constantes, minimo 1 minuto entre mensajes.
|
||||||
|
' CallSubDelayed(Tracker,"CreateLocationRequest")
|
||||||
|
Tracker.flp.RequestLocationUpdates(Tracker.locReqNormal)
|
||||||
|
'Solo mandamos la ubicacion si la precision es dentro de XX mts
|
||||||
|
el_texto = $"LocChange - Coords NO enviadas (Acc:${loc.Accuracy})."$
|
||||||
|
If loc.Accuracy < 50 Then
|
||||||
|
' If Starter.logger Then
|
||||||
|
LogColor("Guardamos y enviamos ubicacion.", Colors.green)
|
||||||
|
mandaLocAServer(loc, id)
|
||||||
|
FirebaseMessaging.locRequest = "Activa"
|
||||||
|
CallSubDelayed2(FirebaseMessaging, "mandaLocFM", loc)
|
||||||
|
guardaInfoEnBD(loc)'Escribimos coordenadas y fecha a una bd
|
||||||
|
el_texto = $"LocChange - Coords enviadas (Acc:${loc.Accuracy})."$
|
||||||
|
End If
|
||||||
|
bitacora($"${el_texto}"$)
|
||||||
|
actualizaVar("solicitudFM", 0)
|
||||||
|
' ToastMessageShow("LocChanged MORE than a min.", False)
|
||||||
|
Else
|
||||||
|
' ToastMessageShow("Locatin changed but less than a min!.", False)
|
||||||
|
End If
|
||||||
|
actualizaVar("locAntTime", loc.time)
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Sub ConvertMillisecondsToString(t As Long) As String 'ignore
|
Sub ConvertMillisecondsToString(t As Long) As String 'ignore
|
||||||
@@ -239,10 +264,10 @@ End Sub
|
|||||||
'Regresa la ultima ubicacion guardada o una ubicacion sin inicializar si no encuentra nada.
|
'Regresa la ultima ubicacion guardada o una ubicacion sin inicializar si no encuentra nada.
|
||||||
Sub traeUltimaUbicacionGuardada As Location 'ignore
|
Sub traeUltimaUbicacionGuardada As Location 'ignore
|
||||||
Private loc As Location
|
Private loc As Location
|
||||||
|
loc.Initialize
|
||||||
Private c As Cursor = gps_hist.ExecQuery($"select FECHA, LAT, LON, ACC, TIME from RUTA_GPS order by fecha desc limit 1"$)
|
Private c As Cursor = gps_hist.ExecQuery($"select FECHA, LAT, LON, ACC, TIME from RUTA_GPS order by fecha desc limit 1"$)
|
||||||
If c.RowCount > 0 Then
|
If c.RowCount > 0 Then
|
||||||
c.Position = 0
|
c.Position = 0
|
||||||
loc.Initialize
|
|
||||||
loc.Latitude = c.GetString("LAT")
|
loc.Latitude = c.GetString("LAT")
|
||||||
loc.Longitude = c.GetString("LON")
|
loc.Longitude = c.GetString("LON")
|
||||||
loc.Accuracy = 0
|
loc.Accuracy = 0
|
||||||
@@ -307,3 +332,19 @@ Sub revisaYmandaUUC
|
|||||||
' LogColor($"Ultima loc: ${Subs.fechaNormal(ultimaLoc.Time)}"$, Colors.blue)
|
' LogColor($"Ultima loc: ${Subs.fechaNormal(ultimaLoc.Time)}"$, Colors.blue)
|
||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
Sub actualizaVar(nombre As String, valor As String)
|
||||||
|
gps_hist.ExecNonQuery($"delete from CAT_VARIABLES where NOMBRE = '${nombre}'"$)
|
||||||
|
gps_hist.ExecNonQuery($"insert into CAT_VARIABLES (NOMBRE, VALOR) values ('${nombre}', '${valor}')"$)
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
'Regresa el valor desde CAT_VARIABLES o del default espacificado en DEFAULT
|
||||||
|
Sub traeVar(nombre As String, default As String) As String
|
||||||
|
Private v As String = default
|
||||||
|
Private c As Cursor = gps_hist.ExecQuery2("select VALOR from CAT_VARIABLES WHERE NOMBRE = ?", Array As String (nombre))
|
||||||
|
If c.RowCount > 0 Then
|
||||||
|
c.Position = 0
|
||||||
|
v = c.GetString("VALOR")
|
||||||
|
End If
|
||||||
|
Return v
|
||||||
|
End Sub
|
||||||
63
Tracker.bas
63
Tracker.bas
@@ -40,7 +40,7 @@ Sub Process_Globals
|
|||||||
Private flpStarted As Boolean
|
Private flpStarted As Boolean
|
||||||
Dim minAccuracy As Int = 50
|
Dim minAccuracy As Int = 50
|
||||||
Dim killerCalled As Int = 0
|
Dim killerCalled As Int = 0
|
||||||
Dim locReqSmall As LocationRequest
|
Dim locReqSmall, locReqNormal As LocationRequest
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Sub Service_Create
|
Sub Service_Create
|
||||||
@@ -50,12 +50,13 @@ Sub Service_Create
|
|||||||
flp.Connect
|
flp.Connect
|
||||||
lock.PartialLock
|
lock.PartialLock
|
||||||
StartFLP
|
StartFLP
|
||||||
If Starter.logger Then Log("FLP initialized")
|
' If Starter.logger Then Log("FLP initialized")
|
||||||
Subs.bitacora($"Iniciamos Tracker"$)
|
Subs.bitacora($"Iniciamos Tracker"$)
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Sub Service_Start (StartingIntent As Intent)
|
Sub Service_Start (StartingIntent As Intent)
|
||||||
locReqSmall = CreateLocationRequest2(1000, 0) 'ignore
|
locReqSmall = CreateLocationRequest2(1000, 0) 'ignore
|
||||||
|
locReqNormal = CreateLocationRequest2(30000, 30) 'ignore
|
||||||
Service.StopAutomaticForeground
|
Service.StopAutomaticForeground
|
||||||
Service.StartForeground(nid, Subs.CreateNotification("..."))
|
Service.StartForeground(nid, Subs.CreateNotification("..."))
|
||||||
Track
|
Track
|
||||||
@@ -81,7 +82,7 @@ Sub flpReConnect
|
|||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Sub flp_ConnectionSuccess
|
Sub flp_ConnectionSuccess
|
||||||
If Starter.logger Then Log("FLP - Connected to location provider")
|
' If Starter.logger Then Log("FLP - Connected to location provider")
|
||||||
Subs.bitacora("FLP - Connection Success")
|
Subs.bitacora("FLP - Connection Success")
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
@@ -106,7 +107,7 @@ Public Sub StartFLP
|
|||||||
Private cont As Int = 0
|
Private cont As Int = 0
|
||||||
Do While flp.IsConnected = False
|
Do While flp.IsConnected = False
|
||||||
Sleep(500)
|
Sleep(500)
|
||||||
If Starter.logger Then Log($"FLP Sleeping - ${cont}"$)
|
' If Starter.logger Then Log($"FLP Sleeping - ${cont}"$)
|
||||||
Subs.bitacora($"Sleeping - ${cont}"$)
|
Subs.bitacora($"Sleeping - ${cont}"$)
|
||||||
cont = cont + 1
|
cont = cont + 1
|
||||||
If cont > 70 Then
|
If cont > 70 Then
|
||||||
@@ -151,31 +152,37 @@ Public Sub StopFLP
|
|||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Sub flp_LocationChanged (Location1 As Location)
|
Sub flp_LocationChanged (Location1 As Location)
|
||||||
If Starter.logger Then LogColor($"Location Changed - Acc: ${Location1.Accuracy}"$, Colors.blue)
|
|
||||||
Private minsTranscurridos As String = Subs.ticksAMins(DateTime.Now - Subs.traeUltimaUbicacionGuardada.Time) 'Minutos transcurridos desde la ultima ubicacion guardada.
|
|
||||||
If Starter.logger Then LogColor(">>>>>>>>>>>>>>>>>>>>>>> " & minsTranscurridos, Colors.red)
|
|
||||||
If Not(IsPaused(Main)) Then
|
|
||||||
Main.laUbicacion = Location1
|
|
||||||
If Starter.logger Then Log("Main.laubicacion actializada")
|
|
||||||
End If
|
|
||||||
Dim el_texto As String = ""
|
|
||||||
Starter.UUC = Location1
|
Starter.UUC = Location1
|
||||||
If Starter.logger Then LogColor("FLP_LocationChanged", Colors.Red)
|
' If Starter.logger Then LogColor("FLP_LocationChanged", Colors.Red)
|
||||||
If Starter.logger Then Log(Location1.Accuracy&" - "&Location1.AccuracyValid)
|
If Starter.logger Then LogColor($"FLP_LocationChanged - Acc: ${Location1.Accuracy}"$, Colors.Red)
|
||||||
If minsTranscurridos > 1 Then ' Para que no mande mensajes constantes, minimo 1 minuto entre mensajes.
|
Private vel As String = (Location1.Speed * 60 * 60) / 1000 ' Kms x hora de ultima ubicacion.
|
||||||
flp.RequestLocationUpdates(CreateLocationRequest)
|
' If Starter.logger Then Log((Location1.time & " - " & Starter.locAntTime))
|
||||||
'Solo mandamos la ubicacion si la precision es dentro de XX mts
|
If Starter.logger Then Log(((Location1.time - Subs.traeVar("locAntTime", 0)) / 1000) & " segs")
|
||||||
el_texto = $"LocChange - Coords NO enviadas (Acc:${Location1.Accuracy})."$
|
' Private minsTranscurridosLoc As String = Subs.ticksAMins(Location1.time - Starter.locAntTime) 'Minutos transcurridos desde la ultima ubicacion ACTUALIZADA.
|
||||||
If Location1.Accuracy < minAccuracy Then
|
' Private minsTranscurridos As String = Subs.ticksAMins(DateTime.Now - Subs.traeUltimaUbicacionGuardada.Time) 'Minutos transcurridos desde la ultima ubicacion guardada.
|
||||||
Subs.mandaLoc2(Location1, Starter.devModel)
|
' If Starter.logger Then LogColor(">>>>>>>> Guardada: " & minsTranscurridos & " mins., Actualizada: " & minsTranscurridosLoc & " mins.", Colors.red)
|
||||||
el_texto = $"LocChange - Coords enviadas (Acc:${Location1.Accuracy})."$
|
' If Not(IsPaused(Main)) Then
|
||||||
End If
|
' Main.laUbicacion = Location1 ' Actualizamos la etiqueta de ubicacion en la pantalla principal.
|
||||||
' If Starter.logger Then Log("Loc changed : "&Location1.Latitude&","&Location1.Longitude&"|"&Starter.devModel&"|")
|
' If Starter.logger Then Log("Main.laubicacion actializada")
|
||||||
Subs.bitacora($"${el_texto}"$)
|
' End If
|
||||||
' ToastMessageShow("LocChanged MORE than a min.", False)
|
' Dim el_texto As String = ""
|
||||||
Else
|
' If Starter.logger Then Log(Location1.Accuracy&" - "&Starter.UUC.AccuracyValid)
|
||||||
' ToastMessageShow("Locatin changed but less than a min!.", False)
|
' If minsTranscurridosLoc > 1 Or minsTranscurridos >= 15 Then ' Para que no mande mensajes constantes, minimo 1 minuto entre mensajes.
|
||||||
End If
|
' flp.RequestLocationUpdates(CreateLocationRequest)
|
||||||
|
' 'Solo mandamos la ubicacion si la precision es dentro de XX mts
|
||||||
|
' el_texto = $"LocChange - Coords NO enviadas (Acc:${Location1.Accuracy})."$
|
||||||
|
' If Location1.Accuracy < minAccuracy Then
|
||||||
|
' If Starter.logger Then LogColor("Guardamos y enviamos ubicacion.", Colors.green)
|
||||||
|
Subs.mandaLoc2(Location1, Starter.devModel)
|
||||||
|
' el_texto = $"LocChange - Coords enviadas (Acc:${Location1.Accuracy})."$
|
||||||
|
' End If
|
||||||
|
' ' If Starter.logger Then Log("Loc changed : "&Location1.Latitude&","&Location1.Longitude&"|"&Starter.devModel&"|")
|
||||||
|
' Subs.bitacora($"${el_texto}"$)
|
||||||
|
'' ToastMessageShow("LocChanged MORE than a min.", False)
|
||||||
|
' Else
|
||||||
|
'' ToastMessageShow("Locatin changed but less than a min!.", False)
|
||||||
|
' End If
|
||||||
|
' Subs.actualizaVar("locAntTime", Location1.time)
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Sub flp_ConnectionSuspended(SuspendedCause1 As Int)
|
Sub flp_ConnectionSuspended(SuspendedCause1 As Int)
|
||||||
|
|||||||
Reference in New Issue
Block a user