修复 XE8 for Android(安卓)方向传感器 headingX,Y,Z 不会动的问题
16lz
2021-12-04
问题: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;{<+++} // 加入上面代码 ... 略 ...
更多相关文章
- Rockie's Android(安卓)Porting Guide(1)——Build your own board
- 如何使用Android(安卓)Studio开发/调试Android源码
- Android中density如何设置
- 系出名门Android(5) - 控件(View)之TextView, Button, ImageButt
- android ctl属性的实现过程
- 更改android锁屏方向
- 移植android的工作环境
- Android(安卓)实现全屏显示的几种方法整理
- 系出名门Android(7) - 控件(View)之ZoomControls, Include, Vide