【问题标题】:How to get name, manufacturer and serial number of build-in sensors如何获取内置传感器的名称、制造商和序列号
【发布时间】:2013-12-26 10:15:13
【问题描述】:

如何获取我的 Android 设备内置传感器的名称、制造商和序列号?

我已经尝试了在文档和教程中找到的两种方法...

  TSensorManager.Current.Active := true;
  NumberofSensors := TSensorManager.Current.Count;
  MemoSensors.Lines.Clear;
  if NumberOfSensors = 0 then
    MemoSensors.Lines.Add('No Sensors Found')
  else
    for i := 0 to NumberOfSensors-1 do
    begin
      MemoSensors.Lines.Add( IntToStr(i) + '  Category:  ' + GetEnumName(System.TypeInfo(TSensorCategory), Ord(TSensorManager.Current.Sensors[i].Category)));
      if(TSensorManager.Current.Sensors[i].Category = TSensorCategory.Motion) then
      begin
        mSensorArray := TSensorManager.Current.GetSensorsByCategory(TSensorCategory.Motion);
        mMoSens := mSensorArray[0] as TCustomMotionSensor;
        if Assigned(mMoSens) then
        begin
            mMoSens.Start;
            MemoSensors.Lines.Add('      Name: ' + mMoSens.Name + ' Manufacturer: ' + mMoSens.Manufacturer + ' Model: ' + TSensorManager.Current.Sensors[i].Model + ' Serial Nr: '  + mMoSens.SerialNo);
            mMoSensorType :=  mMoSens.SensorType;
            MemoSensors.Lines.Add('      Type: ' + GetEnumName(System.TypeInfo(TMotionSensorType), Ord(mMoSens.SensorType))  + '  Category:  ' + GetEnumName(System.TypeInfo(TSensorCategory), Ord(mMoSens.Category)));
            mMoSens.Stop;
        end;
      end;
      //MemoSensors.Lines.Add(  '    Manufacturer: ' + TSensorManager.Current.Sensors[i].Manufacturer + ' Model: ' + TSensorManager.Current.Sensors[i].Model + ' Serial Nr: '  + TSensorManager.Current.Sensors[i].SerialNo);
    end;
  TSensorManager.Current.Active := false;

如您所见,我尝试从以下位置读取它:mMoSens 变量 和直式 array Sensors[i]...

这两种方法都允许读取传感器的类别和类型,但看不到名称、供应商等。我还安装了 GPlay 软件,它读取了我的设备传感器的名称和制造商。

【问题讨论】:

    标签: android delphi firemonkey android-sensors delphi-xe5


    【解决方案1】:

    据我所知,Android 上的 FM 平台目前不支持此功能。

    【讨论】:

    • 对更好的 docwiki 文档有希望吗?
    【解决方案2】:

    源码中有procedure的定义:

    function TCustomSensor.GetSensorProperty(Prop: TProperty): string;
    begin
      Result := '';
    end;
    

    ...所以没有实现所有传感器属性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-05-16
      • 1970-01-01
      • 1970-01-01
      • 2022-01-10
      • 1970-01-01
      • 1970-01-01
      • 2011-06-30
      相关资源
      最近更新 更多