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;
I에 의해 센서를 중지하려고 : 여기
코드입니다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