-1

I'm trying to use Environmental Sensors of Galaxy S4 by using Embarcadero XE5 and running on Android 4.2.2. This is the code I'm using but I get an Access Violation. Can you help me, please?

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, System.Sensors,
  FMX.StdCtrls, FMX.Edit, System.TypInfo;

type
  TForm1 = class(TForm)
    btn1: TSpeedButton;
    lbl1: TLabel;
    procedure btn1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.fmx}



procedure TForm1.btn1Click(Sender: TObject);
var
  LManager : TSensorManager;
  LCustomEnvironmentalSensor     : TCustomEnvironmentalSensor;
  LSensor  : TCustomSensor;
begin
  LManager := TSensorManager.Current;
  LManager.Activate;

  LCustomEnvironmentalSensor:= LSensor as TCustomEnvironmentalSensor;

  lbl1.Text := FloatToStr(LCustomEnvironmentalSensor.Temperature.);
end;

end.
Johan
  • 74,508
  • 24
  • 191
  • 319

1 Answers1

0

as I know TCustomEnvironmentalSensor is just a not initialazed class for your instance of sensor in application code... try the code from FireMonkey Demo Projects named SensorInfo :)

   LSensorArray := TSensorManager.Current.GetSensorsByCategory(ASensorCategory);

   for LSensor in LSensorArray do
   begin
       // do some procedures on the LSensor 
       // from TCustomEnvironmentalSensor class :)
   end