Android实例-MotionSensor加速度(XE8+小米2)
结果:
1.
实例代码:
1 unit Unit1; 2 3 interface 4 5 uses 6 System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, 7 FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, System.Sensors, 8 FMX.StdCtrls, FMX.Controls.Presentation, System.Sensors.Components; 9 10 type 11 TForm1 = class(TForm) 12 MotionSensor1: TMotionSensor; 13 Switch1: TSwitch; 14 Label1: TLabel; 15 Timer1: TTimer; 16 Label2: TLabel; 17 Label3: TLabel; 18 Label4: TLabel; 19 Label5: TLabel; 20 Label6: TLabel; 21 Label7: TLabel; 22 Label8: TLabel; 23 Label9: TLabel; 24 Label10: TLabel; 25 Label11: TLabel; 26 Label12: TLabel; 27 Label13: TLabel; 28 Label14: TLabel; 29 Label15: TLabel; 30 Label16: TLabel; 31 Label17: TLabel; 32 procedure Switch1Click(Sender: TObject); 33 procedure Timer1Timer(Sender: TObject); 34 procedure FormCreate(Sender: TObject); 35 private 36 { Private declarations } 37 public 38 { Public declarations } 39 end; 40 41 var 42 Form1: TForm1; 43 44 implementation 45 46 {$R *.fmx} 47 {$R *.NmXhdpiPh.fmx ANDROID} 48 49 procedure TForm1.FormCreate(Sender: TObject); 50 begin 51 Timer1.Enabled := False; 52 end; 53 54 procedure TForm1.Switch1Click(Sender: TObject); 55 begin 56 MotionSensor1.Active := Switch1.IsChecked; 57 Timer1.Enabled := Switch1.IsChecked; 58 end; 59 60 procedure TForm1.Timer1Timer(Sender: TObject); 61 var 62 LProp: TCustomMotionSensor.TProperty;//所有可能得到的参数 63 begin 64 for LProp in MotionSensor1.Sensor.AvailableProperties do//开始循环,如果手机支持该参数则显示出来 65 begin 66 case LProp of 67 TCustomMotionSensor.TProperty.AccelerationX: 68 begin 69 Label10.Visible := True; 70 Label10.Text := Format('Acceleration X: %6.2f', [MotionSensor1.Sensor.AccelerationX]); 71 end; 72 TCustomMotionSensor.TProperty.AccelerationY: 73 begin 74 Label11.Visible := True; 75 Label11.Text := Format('Acceleration Y: %6.2f', [MotionSensor1.Sensor.AccelerationY]); 76 end; 77 TCustomMotionSensor.TProperty.AccelerationZ: 78 begin 79 Label12.Visible := True; 80 Label12.Text := Format('Acceleration Z: %6.2f', [MotionSensor1.Sensor.AccelerationZ]); 81 end; 82 TCustomMotionSensor.TProperty.AngleAccelX: 83 begin 84 Label13.Visible := True; 85 Label13.Text := Format('Angle X: %6.2f', [MotionSensor1.Sensor.AngleAccelX]); 86 end; 87 TCustomMotionSensor.TProperty.AngleAccelY: 88 begin 89 Label14.Visible := True; 90 Label14.Text := Format('Angle Y: %6.2f', [MotionSensor1.Sensor.AngleAccelY]); 91 end; 92 TCustomMotionSensor.TProperty.AngleAccelZ: 93 begin 94 Label15.Visible := True; 95 Label15.Text := Format('Angle Z: %6.2f', [MotionSensor1.Sensor.AngleAccelZ]); 96 end; 97 TCustomMotionSensor.TProperty.Motion: 98 begin 99 Label16.Visible := True; 100 Label16.Text := Format('Motion: %6.2f', [MotionSensor1.Sensor.Motion]); 101 end; 102 TCustomMotionSensor.TProperty.Speed: 103 begin 104 Label17.Visible := True; 105 Label17.Text := Format('Speed: %6.2f', [MotionSensor1.Sensor.Speed]); 106 end; 107 end; 108 end; 109 end; 110 111 end.