问题:XE8 for Android 方向传感器无法正常运作(在XE7是正常的)

测试:官方示例Samples\ObjectPascal\MobileSnippets\OrientationSensor\

适用:XE8 for Android

修复方法:

请将源码 System.Android.Sensors.pas复制到自己的工程目录里,再进行修改。

修改下面代码:

  TAndroidNativeMagneticSensor = class(TCustomOrientationSensor)  strict private    FNativeSensor: TNativeSensor;  protected    function GetUpdateInterval: Double;  override;    procedure SetUpdateInterval(AInterval: Double); override;    function GetOrientationSensorType: TOrientationSensorType; override;{+++>} // 加入下面二行代码    function DoStart: Boolean; override;    procedure DoStop; override;{<+++}    function GetSensorCategory: TSensorCategory; override;    function GetState: TSensorState; override;    function GetTimeStamp: TDateTime; override;    function GetAvailableProperties: TCustomOrientationSensor.TProperties; override;    function GetDoubleProperty(Prop: TCustomOrientationSensor.TProperty): Double; override;  public    constructor Create(AManager: TSensorManager); override;    function Supported: Boolean;  end;

找到TAndroidNativeMagneticSensor.Create 加入下面代码:

... 略 ...constructor TAndroidNativeMagneticSensor.Create(AManager: TSensorManager);begin  inherited;  FNativeSensor := TNativeSensor.Create(ASENSOR_TYPE_MAGNETIC_FIELD);end;{+++>} // 加入下面代码function TAndroidNativeMagneticSensor.DoStart: Boolean;begin  Result := FNativeSensor.DoStart;end;procedure TAndroidNativeMagneticSensor.DoStop;begin  inherited;  FNativeSensor.DoStop;end;{<+++} // 加入上面代码 ... 略 ...

更多相关文章

  1. Android中SQLite操作示例
  2. Android中Binder类代码(android-5.0.2)
  3. 开发中常用到的几处代码设置
  4. Android代码实现APK文件的安装与卸载
  5. Android 发送短信 源代码
  6. [zz] Android Service 示例
  7. android 常用代码备份
  8. [Android] 代码实现按钮/图片自旋转(中心旋转)
  9. android 的C++代码都加 namespace android

随机推荐

  1. android
  2. android输入法全屏问题
  3. Android初级教程启动定时器详解
  4. android调用系统程序
  5. 日常收集的Android开发资料来源
  6. Android学习札记17:ImageView中的setImage
  7. android button自定义触摸前以及触摸时的
  8. Android休眠唤醒机制简介(二)
  9. Android代码实现APK文件的安装与卸载
  10. Android(安卓)Studio 环境问题