![]() |
FMX Camera Component als Lichtsensor (Lux)
Hallo,
weiss jemand wie man die Helligkeit in Lux mit Firemonkey misst? Habe ein paar Hinweise gefunden, aber es kommt immer Lux=0 raus: procedure TFotoapp.ButtonLichtMessungClick(Sender: TObject); Var Sensormanager: Tsensormanager; i : Integer; Sensors: TSensorArray; fSensor: TCustomLightsensor; begin Sensormanager:=Tsensormanager.Current; Sensormanager.Activate; Sensors:=Sensormanager.GetSensorsByCategory(Tsenso rcategory.Light); if length(Sensors)>0 then Begin fsensor:=TCustomlightSensor(Sensors[0]); //fsensor.OnDataChanged ??; Showmessage(fstrj(fsensor.Lux,5)); // fstrj konvertiert von Double auf String end; end; Ciao Stephan |
AW: FMX Camera Component als Lichtsensor (Lux)
Naja, die FMX Kaperakomponente dürfte eine ziemlich vereinfachte Abstraktion des benutzten Kamera-APIs sein.
Ich fürchte, dass du da um direkte nutzung des entsprechenden OS APIs wohl nicht herumkommen wirst. |
AW: FMX Camera Component als Lichtsensor (Lux)
Hast Du das SensorDemo ausprobiert ?
Wenn dein Handy einen Sensor hat dann sollte damit ein Wert kommen. Nicht unbedingt jedes Handy hat so einen Sensor drin. Generelly kann man auch mit anderen Apps testen, ![]() Es gab in der Vergangenheit schon Fälle wo keines der Programme die Sensoren ansprechen könnte, da ist nicht immer Delphi dran Schuld. Ich würde mich auf den "Lux-Wert" aber nicht verlassen, das ist mehr oder weniger nur ein unkalibrierter Lichtindex ( heller / dunkler). |
AW: FMX Camera Component als Lichtsensor (Lux)
Hallo,
auf meinem Moto G8 habe ich auch andere Apps mit Lux-Messung installiert. Alle gehen 100% einwandfrei! Nur bei meine FMX-App kommt immer 0.0 raus, und OnChanged wird nie getriggert. Beim Code habe ich mich an der Sensor-Demo orientiert. Nur Lux ist eben immer 0.0. Irgendwie dachte ich es liegt daran, dass .start ausgeführt werden muss, jedoch ist .start nicht verfügbar für den Lichtsensor. Hat jemand noch eine Idee, oder kann es selber mal ausprobieren? Eigentlich sollte jedes Android-Handy so einen Lichtsensor haben, nur wie geht der unter FMX? Ciao Stephan |
AW: FMX Camera Component als Lichtsensor (Lux)
Hast du vielleicht noch ein älteres Delphi?
![]() Ich habe auch mal mit einem HTC10 (Android 8) und 10.4 probiert. Damit bekomme ich auch immer 0. |
AW: FMX Camera Component als Lichtsensor (Lux)
Also ich habe gerade mal, nach längerer Zeit, das SensorInfo Demo ausprobiert.
Es funkktioniert erstmal nicht, aber da ist ein kleiner Bug drin
Delphi-Quellcode:
Nach der Änderung wird bei mir (Samsung S9) ein Wert angezeigt,
procedure TfrmAboutSensors.ListBoxItemClick(Sender: TObject);
begin if Sender is TListBoxItem then begin FActiveSensor := TCustomSensor(TListBoxItem(Sender).Data); if (FActiveSensor <> nil) and (not FActiveSensor.Started) then begin {$IFDEF ANDROID} if FActiveSensor.Category = TSensorCategory.Location then begin PermissionsService.RequestPermissions([JStringToString(TJManifest_permission.JavaClass.ACCESS_FINE_LOCATION)], procedure(const APermissions: TArray<string>; const AGrantResults: TArray<TPermissionStatus>) begin if (Length(AGrantResults) = 1) and (AGrantResults[0] = TPermissionStatus.Granted) then FActiveSensor.Start else TDialogService.ShowMessage('Location permission not granted'); end) end else //<== 02.01.21 Add begin //<== FActiveSensor.Start; //<== end; {$ELSE} FActiveSensor.Start; {$ENDIF} end; end; FShowInfo := True; end; vorher war es 0. Ist ja auch klar, wenn der Sensor nur bei Location gestartet würde. |
AW: FMX Camera Component als Lichtsensor (Lux)
Interessante Lösung.
Hast du schon geprüft, ob das schon als Bug in QP eingetragen ist und falls nicht es mit samt deinem Lösungsansatz eingetragen? |
AW: FMX Camera Component als Lichtsensor (Lux)
|
AW: FMX Camera Component als Lichtsensor (Lux)
Ja dankesehr, neues Jahr, zu wenig Zeit ...
Es wäre wirklich sinnvoll wenn Emba die Demos vor jeder neuen Verson mal wirklich Testen/Updaten würde. So kann man bei Neueinsteigern sicher besser punkten, wenn es mal out-of-the-box laufen würde. Die Demos einer Software sind immer der erste Anlaufpunkt für mich. |
AW: FMX Camera Component als Lichtsensor (Lux)
Kommando zurück, falsch geschaut.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:40 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