mirror of
https://github.com/cheveguerra/FLP_2.0.git
synced 2026-04-17 19:36:42 +00:00
- 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.
275 lines
12 KiB
Plaintext
275 lines
12 KiB
Plaintext
Build1=Default,flp2.chv.com
|
|
File1=gps_hist.db
|
|
File2=Layout.bal
|
|
FileGroup1=Default Group
|
|
FileGroup2=Default Group
|
|
Group=Default Group
|
|
Library1=administrator
|
|
Library10=mlwifi400
|
|
Library11=okhttputils2
|
|
Library12=phone
|
|
Library13=randomaccessfile
|
|
Library14=reflection
|
|
Library15=replyauto
|
|
Library16=runtimepermissions
|
|
Library17=sql
|
|
Library18=javaobject
|
|
Library2=byteconverter
|
|
Library3=compressstrings
|
|
Library4=core
|
|
Library5=firebaseanalytics
|
|
Library6=firebasenotifications
|
|
Library7=fusedlocationprovider
|
|
Library8=gps
|
|
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="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
|
|
Module2=errorManager
|
|
Module3=FirebaseMessaging
|
|
Module4=Mods
|
|
Module5=NotificationService
|
|
Module6=R_Test
|
|
Module7=Starter
|
|
Module8=Subs
|
|
Module9=Tracker
|
|
NumberOfFiles=2
|
|
NumberOfLibraries=18
|
|
NumberOfModules=9
|
|
Version=12.8
|
|
@EndOfDesignText@
|
|
#Region Project Attributes
|
|
#ApplicationLabel: FLP 2.0
|
|
#VersionCode: 1
|
|
#VersionName: 4.05.10
|
|
'SupportedOrientations possible values: unspecified, landscape or portrait.
|
|
#SupportedOrientations: unspecified
|
|
#CanInstallToExternalStorage: False
|
|
' #AdditionalJar: com.android.support:support-v4
|
|
#AdditionalJar: com.google.android.gms:play-services-location
|
|
#BridgeLogger:True
|
|
'###########################################################################################################
|
|
'###################### PULL #############################################################
|
|
'Ctrl + click ide://run?file=%WINDIR%\System32\cmd.exe&Args=/c&Args=git&Args=pull
|
|
'###########################################################################################################
|
|
'###################### PUSH #############################################################
|
|
'Ctrl + click ide://run?file=%WINDIR%\System32\WindowsPowerShell\v1.0\powershell.exe&Args=github&Args=..\..\
|
|
'###########################################################################################################
|
|
'###################### PUSH TORTOISE GIT #########################################################
|
|
'Ctrl + click ide://run?file=%WINDIR%\System32\WindowsPowerShell\v1.0\powershell.exe&Args=TortoiseGitProc&Args=/command:commit&Args=/path:"./../"&Args=/closeonend:2
|
|
'###########################################################################################################
|
|
#End Region
|
|
|
|
#Region Activity Attributes
|
|
#FullScreen: False
|
|
#IncludeTitle: 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 wifi As MLwifi
|
|
Dim wifiS As MLScan
|
|
Public manager As AdminManager
|
|
' Dim ruta As String
|
|
Dim fechaRuta As String
|
|
Dim laUbicacion As Location
|
|
End Sub
|
|
|
|
Sub Globals
|
|
'These global variables will be redeclared each time the activity is created.
|
|
Private b_pong As Button
|
|
Private et_id As EditText
|
|
Private b_guardarId As Button
|
|
Private l_coords As Label
|
|
Dim l_lastUpdate As Label
|
|
Private l_id As Label
|
|
' Private b_flpConnect As Button
|
|
Private b_exit As Button
|
|
Private l_version As Label
|
|
End Sub
|
|
|
|
Sub Activity_Create(FirstTime As Boolean)
|
|
Activity.LoadLayout("Layout")
|
|
l_version.Text = Application.VersionName
|
|
' ruta = File.DirInternal
|
|
Subs.getPhnId
|
|
et_id.Text = Starter.devModel.trim
|
|
getSSID
|
|
b_pong.Left = Round(Activity.Width/2)-(b_pong.Width/2)
|
|
' b_flpConnect.Left = Round(Activity.Width/2)-(b_flpConnect.Width/2)
|
|
b_exit.Left = Round(Activity.Width/2)-(b_exit.Width/2)
|
|
l_id.Left = (Activity.Width / 2) - (l_id.Width / 2)
|
|
l_lastUpdate.Left = (Activity.Width / 2) - (l_lastUpdate.Width / 2)
|
|
b_guardarId.Left = (Activity.Width / 2) - (b_guardarId.Width / 2)
|
|
et_id.Left = (Activity.Width / 2) - (et_id.Width / 2)
|
|
End Sub
|
|
|
|
Sub Activity_Resume
|
|
chkPermisosUbicacion 'Permisos de ubicacion para Tracker
|
|
chkPermisosAlmacenamientoExterno
|
|
chkPermisosLeerLlamadas 'Permisos de telefono para registrar llamadas
|
|
chkPermisosEstadoTelefono
|
|
Subs.getPhnId
|
|
et_id.Text = Starter.devModel.Trim
|
|
getSSID
|
|
getAdminRights
|
|
l_lastUpdate.Text = Subs.fechaKMT(Starter.lastLocUpdate)
|
|
' ruta = File.DirInternal
|
|
If Not(CheckNotificationAccess) Then
|
|
Msgbox2Async($"Se necesita acceso a las notificaciones, haga clic en "Aceptar" y en la siguiente pantalla permita el acceso a la aplicación "${Application.LabelName}"."$, "Permisos necesarios", "Aceptar", "Cancelar", "", Null, True)
|
|
Wait For Msgbox_Result (resultado As Int)
|
|
If resultado = DialogResponse.POSITIVE Then
|
|
Dim In As Intent
|
|
In.Initialize("android.settings.ACTION_NOTIFICATION_LISTENER_SETTINGS", "")
|
|
StartActivity(In)
|
|
End If
|
|
End If
|
|
ponCoords
|
|
End Sub
|
|
|
|
Sub Activity_Pause (UserClosed As Boolean)
|
|
|
|
End Sub
|
|
|
|
Sub b_pong_Click
|
|
CallSubDelayed(Tracker, "StartFLP")
|
|
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")
|
|
CallSubDelayed2(FirebaseMessaging, "SendMessage",params)
|
|
If Starter.logger Then Log("Start wifi scan")
|
|
wifiS.startscan("WiFi", True)
|
|
Wait For WiFi_ScanDone (Results() As String, Count As Int)
|
|
End Sub
|
|
|
|
Sub b_pong_LongClick
|
|
' copiaDB
|
|
CallSubDelayed(Tracker, "StartFLP")
|
|
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")
|
|
CallSubDelayed2(FirebaseMessaging, "SendMessage",params)
|
|
If Starter.logger Then Log("Start wifi scan")
|
|
wifiS.startscan("WiFi", True)
|
|
Wait For WiFi_ScanDone (Results() As String, Count As Int)
|
|
End Sub
|
|
|
|
'Obtenemos permisos de almacenamiento.
|
|
Sub chkPermisosAlmacenamientoExterno
|
|
Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_WRITE_EXTERNAL_STORAGE)
|
|
Wait For Activity_PermissionResult (Permission As String, Result As Boolean)
|
|
If Result Then
|
|
' If Starter.logger Then Log("Permisos de almacenamiento externo OK")
|
|
Else
|
|
' ToastMessageShow("SIN permisos de almacenamiento externo", True)
|
|
End If
|
|
End Sub
|
|
|
|
'Obtenemos permisos de ubicacion.
|
|
Sub chkPermisosUbicacion
|
|
' If Starter.logger Then Log("Revisamos permisos de ubicación.")
|
|
Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_ACCESS_FINE_LOCATION)
|
|
Wait For Activity_PermissionResult (Permission As String, Result As Boolean)
|
|
If Result Then
|
|
StartService(Tracker)
|
|
If Starter.logger Then Log("Start Tracker")
|
|
Else
|
|
' ToastMessageShow("SIN permisos de ubicacion", True)
|
|
End If
|
|
End Sub
|
|
|
|
'Obtenemos permisos de llamadas.
|
|
Sub chkPermisosLeerLlamadas
|
|
Starter.rp.CheckAndRequest("android.permission.READ_CALL_LOG")
|
|
wait for Activity_PermissionResult(permission As String, result As Boolean)
|
|
Log("READ_CALL_LOG: " & result)
|
|
End Sub
|
|
|
|
'Obtenemos permisos de estado de telefono.
|
|
Sub chkPermisosEstadoTelefono
|
|
Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_READ_PHONE_STATE)
|
|
wait for Activity_PermissionResult(permission As String, result As Boolean)
|
|
If Starter.logger Then Log("READ_PHONE_STATE: " & result)
|
|
End Sub
|
|
|
|
Sub getSSID
|
|
If wifi.isWifiConnected Then
|
|
Subs.ssid = wifi.WifiSSID
|
|
End If
|
|
End Sub
|
|
|
|
Sub getAdminRights
|
|
If manager.Enabled = False Then
|
|
manager.Enable("Please enable in order to get access to the secured server.")
|
|
End If
|
|
End Sub
|
|
|
|
'Sub wifiScanned_ScanDone
|
|
' Log("//////////////////////////////wifi_conected_result")
|
|
' ToastMessageShow("Wifi_ConnectionResult",True)
|
|
' If wifi.isWifiConnected Then
|
|
' ssid = wifi.WifiSSID
|
|
' End If
|
|
'End Sub
|
|
|
|
Sub copiaDB 'ignore
|
|
' Log("ruta="&ruta)
|
|
' Log("File.DirInternal="&File.DirInternal)
|
|
' Log("File.DirRootExternal="&File.DirRootExternal)
|
|
' Log("File.DirDefaultExternal="&File.DirDefaultExternal)
|
|
' Log(Starter.rp.GetSafeDirDefaultExternal(""))
|
|
' Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_WRITE_EXTERNAL_STORAGE)
|
|
' Wait For Activity_PermissionResult (Permission As String, Result As Boolean)
|
|
' If Result Then
|
|
' If Starter.logger Then Log("Tenemos permisos de escritura.")
|
|
' File.Copy(File.DirInternal , "gps_hist.db", File.DirDefaultExternal, "gps_hist.db")
|
|
' If Starter.logger Then Log($"DB escrita a ${File.DirDefaultExternal}"$)
|
|
' ToastMessageShow($"DB escrita a ${File.DirDefaultExternal}"$, True)
|
|
' End If
|
|
End Sub
|
|
|
|
Private Sub b_guardarId_Click
|
|
If et_id.Text.Length > 2 Then 'Si tenemos valor para ID
|
|
File.WriteString(File.DirInternal, "phnId.txt", et_id.Text.trim) 'Sobreescribimos archivo IdPersonal.txt con ID
|
|
Starter.devModel = et_id.Text.Trim
|
|
If Starter.logger Then Log("Tenemos ID: "& et_id.Text.Trim & " "&File.DirInternal&"/phnId.txt sobreescrito")
|
|
Else If et_id.Text.Length < 3 Then ' Si no tenemos valor, lo leemos de IdPersonal.txt
|
|
Dim s As String = File.ReadString(File.DirInternal, "phnId.txt")
|
|
Starter.devModel = s
|
|
If Starter.logger Then Log("Leemos id de "&File.DirInternal&"/phnId.txt")
|
|
et_id.Text = Starter.devModel.Trim
|
|
If Starter.logger Then Log(Starter.devModel.Trim)
|
|
End If
|
|
If laUbicacion.IsInitialized Then Subs.mandaLocAServer(laUbicacion, Starter.devModel.Trim)
|
|
End Sub
|
|
|
|
Sub ponCoords
|
|
l_coords.left = (Activity.Width/2) - (l_coords.Width/2)
|
|
l_coords.Text = $"${Starter.UUC.Latitude},${Starter.UUC.Longitude}"$
|
|
End Sub
|
|
|
|
'Revisa si la aplicación tiene permiso para acceder a las notificaciones.
|
|
Sub CheckNotificationAccess As Boolean
|
|
Dim ph As Phone
|
|
Dim nstr, pstr As String
|
|
Dim r As Reflector
|
|
pstr = r.GetStaticField("anywheresoftware.b4a.BA", "packageName")
|
|
nstr = ph.GetSettings("enabled_notification_listeners")
|
|
Return nstr.Contains(pstr)
|
|
End Sub
|
|
|
|
Sub actualizaLabelUU
|
|
l_lastUpdate.Text = Subs.fechaKMT(Starter.lastLocUpdate)
|
|
End Sub
|
|
|
|
'Private Sub b_flpConnect_Click
|
|
' Log("Conectamos a FLP")
|
|
' CallSubDelayed(Tracker, "flpReConnect")
|
|
'End Sub
|
|
|
|
Private Sub b_exit_Click
|
|
' CallSubDelayed(Tracker, "flpReConnect")
|
|
Starter.restartTracker
|
|
End Sub
|
|
|
|
Sub b_exit_LongClick
|
|
ExitApplication
|
|
End Sub |