AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung Feststellen ob das GPS empfang besteht
Thema durchsuchen
Ansicht
Themen-Optionen

Feststellen ob das GPS empfang besteht

Ein Thema von QuickAndDirty · begonnen am 6. Feb 2018 · letzter Beitrag vom 27. Mär 2018
Antwort Antwort
Seite 1 von 2  1 2      
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.882 Beiträge
 
Delphi 12 Athens
 
#1

Feststellen ob das GPS empfang besteht

  Alt 6. Feb 2018, 09:09
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.
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

AW: Feststellen ob das GPS empfang besteht

  Alt 6. Feb 2018, 14:41
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 )
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.882 Beiträge
 
Delphi 12 Athens
 
#3

AW: Feststellen ob das GPS empfang besteht

  Alt 7. Feb 2018, 15:15
Meinst du NODATA
?
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.882 Beiträge
 
Delphi 12 Athens
 
#4

AW: Feststellen ob das GPS empfang besteht

  Alt 8. Feb 2018, 15:31
locationSensor.Sensor.State liefert immer Ready.
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.116 Beiträge
 
Delphi 12 Athens
 
#5

AW: Feststellen ob das GPS empfang besteht

  Alt 8. Feb 2018, 17:02
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.

locationSensor.Sensor.State liefert immer Ready.
Dazu gibt es Mehreres
z.B. https://forums.embarcadero.com/threa...hreadID=228892
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.882 Beiträge
 
Delphi 12 Athens
 
#6

AW: Feststellen ob das GPS empfang besteht

  Alt 9. Feb 2018, 11:05
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.

locationSensor.Sensor.State liefert immer Ready.
Dazu gibt es Mehreres
z.B. https://forums.embarcadero.com/threa...hreadID=228892
Ich hab jetzt intesive tests mit den Delphisamples SensorInfo und LocationDemoProject
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

Andreas
Monads? Wtf are Monads?

Geändert von QuickAndDirty ( 9. Feb 2018 um 11:39 Uhr)
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
3.901 Beiträge
 
Delphi 12 Athens
 
#7

AW: Feststellen ob das GPS empfang besteht

  Alt 9. Feb 2018, 12:28
Zitat:
Locationsensor.Active AUS
Also geht es dir darum ob Location aktiv ist, oder ob ein aktiver Location mit korrekten GPS-Ergebnissen arbeitet ?

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:
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;
Rollo
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.882 Beiträge
 
Delphi 12 Athens
 
#8

AW: Feststellen ob das GPS empfang besteht

  Alt 9. Feb 2018, 13:04
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.
Andreas
Monads? Wtf are Monads?

Geändert von QuickAndDirty ( 9. Feb 2018 um 13:41 Uhr)
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
3.901 Beiträge
 
Delphi 12 Athens
 
#9

AW: Feststellen ob das GPS empfang besteht

  Alt 9. Feb 2018, 13:41
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
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.882 Beiträge
 
Delphi 12 Athens
 
#10

AW: Feststellen ob das GPS empfang besteht

  Alt 9. Feb 2018, 15:00
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
Ja es gibt ne ganze Website über strategien zur standorfeststellung
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.
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:30 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz