Einzelnen Beitrag anzeigen

derseitzer

Registriert seit: 12. Okt 2016
235 Beiträge
 
Delphi 10 Seattle Professional
 
#1

Delphi-Sensoren-Motionsensor wie aktivieren?

  Alt 31. Mai 2017, 16:17
Hallo Leute,
kurz vorab meine Frage: wie aktiviert man den Motionsensor für ein Samsung Galaxy S7 Edge? Hier warum ich diese einstellung suche:

Ich schreibe an einer Projektarbeit über Sensoren im Handy und brauche dringend Hilfe!

ich versuche gerade (und ich bin natürlich schon viel zu spät dran ) alle Sensoren, die für die Bewegung eines Objektes wichtig sind, zu bekommen.
Habe es so mal auf einem Formular mit ein paar probiert:

Code:
Label1.Text := FloatToStr(360*MotionSensor1.Sensor.accelerationX);
Label2.text := FloatToStr(360*MotionSensor1.Sensor.accelerationY);
Label3.text := FloatToStr(360*MotionSensor1.Sensor.accelerationZ);

Label4.text := FloatToStr(MotionSensor1.Sensor.AngleAccelX);
Label5.text := FloatToStr(MotionSensor1.Sensor.AngleAccelY);
Label6.text := FloatToStr(MotionSensor1.Sensor.AngleAccelZ);

Label7.text := FloatToStr(MotionSensor1.Sensor.Motion);
Label8.text := FloatToStr(MotionSensor1.Sensor.Speed);

Label9.Text := IntToStr(round(8*OrientationSensor1.Sensor.HeadingX));
Label10.Text := IntToStr(round(8*OrientationSensor1.Sensor.HeadingY));
Label11.Text := IntToStr(round(8*OrientationSensor1.Sensor.HeadingZ));

Label12.Text := FloatToStr(OrientationSensor1.Sensor.TiltX);
Label13.Text := FloatToStr(OrientationSensor1.Sensor.TiltY);
Label14.Text := FloatToStr(OrientationSensor1.Sensor.TiltZ);

Label15.Text := FloatToStr(OrientationSensor1.Sensor.DistanceX);
Label16.Text := FloatToStr(OrientationSensor1.Sensor.DistanceY);
Label17.Text := FloatToStr(OrientationSensor1.Sensor.DistanceZ);
Ich bekomme für diese Befehle einen guten Wert(nicht verwirren lassen von dem vorfaktor und dem round): (dieser Sensor benutzt den Kompass, also magnetischen Nord- und Süpol)
Code:
Label9.Text := IntToStr(round(8*OrientationSensor1.Sensor.HeadingX));
Label10.Text := IntToStr(round(8*OrientationSensor1.Sensor.HeadingY));
Label11.Text := IntToStr(round(8*OrientationSensor1.Sensor.HeadingZ));
Ich bekomme für diese Befehle 0:
Code:
Label1.Text := FloatToStr(360*MotionSensor1.Sensor.accelerationX);
Label2.text := FloatToStr(360*MotionSensor1.Sensor.accelerationY);
Label3.text := FloatToStr(360*MotionSensor1.Sensor.accelerationZ);
Für alles andere bekomme ich "NAN", also die funktionieren eben nicht.

Nun meine Frage:
Eigentlich sollte ich mit dem motionsensor (der ja funktioniert) Werte bekommen, aber ich bekomme nur 0 zurück.. Muss ich den erst einschalten?
Ich habe gesehen, dass andere Apps von anderen Programmierern ihre Motionsensor programme ebenfalls mit: Label1.Text := FloatToStr(MotionSensor1.Sensor.accelerationX);
schreiben, aber diese Apps funktionieren bei mir AUCH nciht.. ich muss diesen Sensor wohl irgendwo aktivieren aber wo? ich besitze ein Samsung Galaxy S7 Edge.

Ich würde mich sehr über eine hilfreiche Antowrt freuen

Edit: die TiltX, TiltY und TiltZ Befehler sollten auch Werte zurückgeben aber da bekomme ich "NAN" zurück also ist anscheinend garnicht erreichbar? Habe mir mal eine App über Sensoren runtergeladen.. eigentlich sollten alle Sensoren funktionsbereit sein..
Auch das hier
http://docwiki.embarcadero.com/CodeE...roscope_Sample
funktioniert bei mir nicht.. bekomme 0,0,0,0,0 zurück..

Geändert von derseitzer (31. Mai 2017 um 16:42 Uhr)
  Mit Zitat antworten Zitat