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