修复 XE8 for Android 方向传感器 headingX,Y,Z 不会动的问题
16lz
2021-01-23
问题: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;{<+++} // 加入上面代码 ... 略 ...
更多相关文章
- Android中SQLite操作示例
- Android中Binder类代码(android-5.0.2)
- 开发中常用到的几处代码设置
- Android代码实现APK文件的安装与卸载
- Android 发送短信 源代码
- [zz] Android Service 示例
- android 常用代码备份
- [Android] 代码实现按钮/图片自旋转(中心旋转)
- android 的C++代码都加 namespace android