【问题标题】:Accessing Android sensors in Embarcadero XE5在 Embarcadero XE5 中访问 Android 传感器
【发布时间】:2013-12-16 20:22:19
【问题描述】:

我正在尝试通过使用 Embarcadero XE5 并在 Android 4.2.2 上运行来使用 Galaxy S4 的环境传感器。 这是我正在使用的代码,但我遇到了访问冲突。 你能帮帮我吗?

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.

【问题讨论】:

  • 欢迎来到 Stackoverflow。如果您在帖子中添加确切的错误消息可能会有所帮助。
  • 并指出哪行代码引发了 AV 异常。

标签: android delphi firemonkey delphi-xe5


【解决方案1】:

据我所知,TCustomEnvironmentalSensor 只是应用程序代码中您的传感器实例的未初始化类...试试 FireMonkey Demo Projects 中名为 SensorInfo 的代码 :)

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

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

【讨论】:

    猜你喜欢
    • 2014-03-26
    • 2023-03-22
    • 2011-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多