PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV 28 → PROBLEMA CON GPS EN BACKGROUND
PROBLEMA CON GPS EN BACKGROUND
Iniciado por PILAR, abr., 14 2021 12:06 PM - 4 respostas
Publicado em abril, 14 2021 - 12:06 PM
Buenos días,
Tengo una consulta.
Estoy trabajando en una aplicación que necesita enviar la ubicación GPS del usuario, incluso cuando la aplicación está en segundo plano o cerrada.
He estado probando varias opciones pero ninguna funciona.
El procedimiento es una llamada al webservice, en el cual tiene que pasar la info a una base de datos y que se actualice, como comento en bastante simple, he puesto en este procedimiento que el procedimiento automático es ejecución periódica cuando la aplicación está en segundo plano. , y el procedimiento es el siguiente:
PROCEDURE posicionbackground()

dtData is DateTime
MyPosition is a geoPosition
MyPosition = GPSGetPosition()

IF gpsDisabled = True THEN
gsReport = "GPS Disabled"
dtData = SysDateTime()

ELSE IF gpsOffService = True THEN
gsReport = "GPS off service"
dtData = SysDateTime()

ELSE IF gpsUnavailable = True THEN
gsReport = "GPS Unavailable"
dtData = SysDateTime()

ELSE
gsReport = ""
dtData = ""
END

gsLatitude = MyPosition..Latitude
gsLongitude = MyPosition..Longitude
JSONResultado is JSON
vResultado is Variant
vPosicion is Variant



h est un httpRequête
h..Méthode = httpPost
h..URL = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
h..ContentType = "application/json"
h..Entête["Authorization"] = "xxxxxxxxxxxxxxxxxxxxxxxxxx"


vPosicion.Empleado = gsIdCodiEmpleatLogged
vPosicion.Dispositivo = SysIdentifier()
vPosicion.Latitud = gsLatitude
vPosicion.Longitud = gsLongitude
vPosicion.Data = SysDateTime()
vPosicion.error = gsReport
vPosicion.DataError = dtData


h..Contenu = VariantVersJSON(vPosicion)

r est un restRéponse = RESTEnvoie(h)

JSONResultado = r..Contenu

vResultado = JSONToVariant(JSONResultado)

Como comento es bastante sencillo, entiendo que no tengo que llamar al procedimiento en ningún otro lugar, porque se supone que la llamada se hace de forma automática, no sé si alguien me puede echar una mano.

Gracias de antemano.
Membro registado
794 mensagems
Popularité : +40 (42 votes)
Publicado em abril, 14 2021 - 3:21 PM
Hola, no das mucha información de como haces la llamada al procedimiento o que parte es la que falla. Echale un vistazo a esto en los últimos posts

https://forum.pcsoft.fr/fr-FR/pcsoft.fr.windevmobile/42805-accessbackgroundlocation-idee-geni/read.awp

Rubén
Publicado em abril, 14 2021 - 6:22 PM
Muchas gracias Rubén por tu respuesta.
Pues realmente no llamo al procedimiento en ningún sitio, ya que al ponerle lo de que es automático cuando esta en background, pues me indica que no hace falta que la llame. Es más si intento llamarlo me da un error y me indica que no hace falta llamarlo.
Tengo un procedimiento similar al que he posteado anteriormente, y ese procedimiento lo llamo en la pantalla principal y es para que envíe la ubicación del dispositivo, cuando este este activo, este procedimiento tiene un thread que se activa cada 30seg.
Y luego tengo este procedimiento que en principio es para que mande la info a la bd cada 15 min cuando este en background.
El error que me aparece dice que el procedimiento que tengo en la pantalla principal el de los 30seg, que tiene un invalid json format
Y no lo entiendo.

No se si me he explicado...
Membro registado
794 mensagems
Popularité : +40 (42 votes)
Publicado em abril, 15 2021 - 1:56 PM
Ok, ¿Y el error es en el JSON que envias o en el que recibes?

Rubén
Membro registado
794 mensagems
Popularité : +40 (42 votes)
Publicado em abril, 15 2021 - 5:18 PM