Androidで加速度センサーを使用しようとすると、センサーでコードを停止して無効にしようとしても、CPU使用率が高くなります。FireMonkey Android加速度センサー高CPU使用
私はアプリケーションで加速度センサーを一度読み取る必要がありますが、FireMonkeyが応答せず、センサーを停止できないようです。ここで
コードは次のとおりです。
var
Sensor: TCustomSensor;
begin
{ attempt to get and activate the sensor manager }
FSensorManager := TSensorManager.Current;
FSensorManager.Activate;
{ attempt to get an orientation sensor }
FSensors := TSensorManager.Current.GetSensorsByCategory(TSensorCategory.Motion);
FSensor := nil;
for Sensor in FSensors do
if TCustomMotionSensor(Sensor).SensorType = TMotionSensorType.Accelerometer3D then
begin
FSensor := TCustomMotionSensor(Sensor);
Break;
end;
if not Assigned(FSensor) then
begin
Exit; { no orientation sensor is available }
end;
{ start the sensor if it is not started }
if not FSensor.Started then
begin
FSensor.Start;
Timer1.Enabled := True;
end;
end;
私はことにより、センサを停止しよう:
FSensor.Stop;
FSensorManager.Deactivate;
FSensor.Free;
FSensorManager.Free;
が、これがすべてでは動作しませんように見えます!
After pushing button and activated sensor
あなたは製品バージョンの使用については言及していません。あなたの質問を編集してこれを修正してください。 – blong
また、あなたは、あなたの試みは、センサーの無効化はあなたの試みは、アプリケーションのCPU使用量が示す限り、センサーを無効にしないと言っている?これは前提ですか?あなたは、センサーを無効にした後もまだ発砲したイベントを見て、そのポイントを証明することはできますか? あなたの質問を見ている人の側で、「行間を読む」ことの必要性を鎮めるために、質問に詳細を追加してください。 – blong
私は "Rad studio 10.1 update 1"を使用します。 「FSensor.Start」が突然実行されたときに、携帯電話のCPU使用率が20%に上昇しました!私はコードを無効にして "Fsensor"と "FSensorManager"を解放してもアプリケーションを閉じるまで減少しません。 – khafan