![]() |
Feststellen ob das GPS empfang besteht
Hallo,
Ich möchte ermitteln ob GPS empfang besteht. TLocattionSensor hat nur das Ereignis OnLocationchanged, welches ja nur ausgelöst wird wenn sich die Location signifikant ändert. Wenn ich aber im Lastwagen wo anders hinfahre und in der Zeit keinen GPS Empfang habe ändert sich der Ort nicht... Ich möchte mitbekommen wenn die "letzten Koordinaten" nichts mehr mit dem GPS signal zu tun haben. |
AW: Feststellen ob das GPS empfang besteht
Soweit ich das in der Doku sehe müsstest du das mit locationSensor.Sensor.State abfragen können. (Notfalls im Timer oder so weils ja kein Event gibt :| )
|
AW: Feststellen ob das GPS empfang besteht
Meinst du NODATA
? |
AW: Feststellen ob das GPS empfang besteht
locationSensor.Sensor.State liefert immer Ready.
|
AW: Feststellen ob das GPS empfang besteht
Nja, Ready könnte auch nur heißen der Sensor ist aktiv (was auch nicht stimmt), was aber noch nicht heißen müsste, dass er auch Empfang hat.
Zitat:
z.B. ![]() |
AW: Feststellen ob das GPS empfang besteht
Zitat:
durchgeführt...um auszuschließen das nicht mein Projekt einfach falsch an die Sache dran geht. LocationDemoProject habe ich leicht modifiziert , so dass es im Überschriften label LocationsSensor.Sensor.Latitutude.tostring anzeigt. Ich simuliere schlechten GPS Empfang bzw. guten GPS Empfang Setup: -Handy ist im Büro -Alle Standorddienste aus, außer GPS Anzeige: Latitude= NAN Setup änderung während des betriebs der APP im hintergrund: -Handy ist im Büro -Alle Standorddienste an Anzeige: Latitude=Sinvoller wert Setup änderung während des betriebs der APP im hintergrund: -Handy ist im Büro -Alle Standorddienste aus, außer GPS Anzeige: Latitude=Sinvoller wert !!!!!!!!!!!!!!!!//Das sollte wieder zu NAN wechseln , voll daneben Setup: -Handy ist im Büro -Alle Standorddienste aus, außer GPS -Locationsensor.Active AUS und ANgeschaltet Anzeige: Latitude=Sinvoller wert !!!!!!!!!!!!!!!!//Das sollte wieder zu NAN wechseln , voll daneben Setup: -Handy ist im Büro -Alle Standorddienste aus, außer GPS -Neustart der APP Anzeige: Latitude= NAN :( |
AW: Feststellen ob das GPS empfang besteht
Zitat:
Ersteres kann man ja abfangen, zweiteres wird schwierig festzustellen ob GPS mal kurz gestört ist weil ein Tesla vorbeifliegt. Ersteres z.B. so:
Delphi-Quellcode:
Rollo
function IsGPSActive(useHIGH_ACCURACY: Boolean = False): Boolean;
var Provider: string; LocationMode: integer; begin if TOSVersion.Check(4, 4) then begin LocationMode := TJSettings_Secure.JavaClass.getInt(TAndroidHelper.Context.getContentResolver, TJSettings_Secure.JavaClass.LOCATION_MODE); if HIGH_ACCURACY then //ToDo: Check if this is correct Result := LocationMode <> TJSettings_Secure.JavaClass.LOCATION_MODE_HIGH_ACCURACY else Result := LocationMode <> TJSettings_Secure.JavaClass.LOCATION_MODE_OFF; end else begin Provider := JStringToString(TJSettings_Secure.JavaClass.GetString(TAndroidHelper.Context.getContentResolver, TJSettings_system.JavaClass.LOCATION_PROVIDERS_ALLOWED)); if useHIGH_ACCURACY then Result := Pos('gps', Provider) > 0 else Result := (Pos('network', Provider) > 0) or (Pos('gps', Provider) > 0); end; end; |
AW: Feststellen ob das GPS empfang besteht
Es geht mir darum rauszukriegen ob GPS gestört ist.
Ich will dem Benutzer mitteilen dass die aktuelle Aktivität nicht mit einer aktuellen Koordinate verknüft wird. Sondern mit der Letzten die sich die APP gemerkt hat. Leider merkt sich der Dumme Sensor die Koordinaten auch, statt einfach zu melden was Sache ist. LocationSensor1.Active := False; LocationSensor1.Active := true; Hilft nicht LocationSensor1.Sensor.Stop; LocationSensor1.Sensor.Start; hilft schonmal nicht App aus App An hilft... LocationSensor1.Sensor.Manager.Active := false; LocationSensor1.Active := true; hat auch keine Änderung der Koordinaten zu NAN zu Folge... Das Problem ist, dass die letzte Koordinate oft die ist die vorm Einsteigen in ein Fahrzeug der Firma erfasst wurde. Und das kann sehr weit ab vom realen Standort sein. |
AW: Feststellen ob das GPS empfang besteht
Ich würd mal versuchen mich in den LocationChage Event zu hängen, und schauen ob der regelmäßig kommt.
Wenn z.B. 5 Min kein LocationChange kommt hönnte man den Weert verwerfen. Ich benutze aber die Location vom Phone, und i.d.R. sind die Werte im LocationChange Event OK. Hier gibt es kaum einen Grund das doppelt zu verifizieren. Wenn dir das nicht reicht würde ich mal bei Android googeln. Rollo |
AW: Feststellen ob das GPS empfang besteht
Zitat:
Könnte dann nen Kontent Provider schreiben der mir mitteilen kann ob es einen GPS-fix gibt oder nicht. Das mit dem Alter der Koordinaten habe ich mir auch schon gedacht. Aber es gibt ja auch leute die sich ewig in Hallen, Läden oder Kellern aufhalten, und da ist ja die letzte Koordinate vielleicht sogar die richtige. (direkt vor dem Gebäude) Im prinzip liegt das Problem bei einem Kunden der nicht hinnehmen will, dass seine Mitarbeiter halt nicht immer korrekte Koordinaten mit ihrem Handy erfassen, weil GPS nun mal so funktioniert wie es funktioniert, kommt manchmal auch 0,0 raus.... Koordinaten von 0,0 kann ich als "Fehler" erkennen und dem User raten sich doch mal nen GPS-fix für sein handy an der Fensterscheibe zu besorgen... Nur falsche Koodrinaten sind halt nicht erkennbar. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:29 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz