【问题标题】:Locationsensor does not turn off位置传感器不关闭
【发布时间】:2018-02-20 21:09:53
【问题描述】:

我正在使用在 formcreate 上处于活动状态的位置传感器和在设计时打开 Compass 和 MyLocation ControlOptions 的 Mapview。我想在应用程序进入后台时关闭位置。我使用此代码:

function Frm.OnApplicationEvent(AAppEvent:TApplicationEvent;AContext:TObject):Boolean;
var
StartupIntent: JIntent;
  begin    
    case AAppEvent of
      TApplicationEvent.EnteredBackground:
      //TApplicationEvent.willbecomeinactive:
       begin
        MapView1.ControlOptions := MapView1.ControlOptions - [TMapControlOption.MyLocation];
        MapView1.ControlOptions := MapView1.ControlOptions - [TMapControlOption.Compass];
        locationsensor1.Active:=false;
        mapview1.Enabled:=false;
       end;
      TApplicationEvent.WillBecomeForeground:
       begin
        mapview1.Enabled:=true;
        MapView1.ControlOptions := MapView1.ControlOptions + [TMapControlOption.MyLocation];
        MapView1.ControlOptions := MapView1.ControlOptions + [TMapControlOption.Compass];
        locationsensor1.Active:=true;
       end;
    end;
    Result := False;
  end;

但 android 上的位置图标并没有消失。只有当我杀死应用程序时它才会消失。

你知道这个问题吗?

非常感谢

【问题讨论】:

  • 传感器被ASensorEventQueue_disableSensor 函数禁用。当传感器刚刚禁用时,图标是否有可能持续存在?我对 Android 开发有一点经验,但也许您需要暂时销毁 TLocationSensor 实例以使该图标消失..

标签: android delphi firemonkey


【解决方案1】:

问题出在 MapView 上。如果我将 mapview(面板)的容器的可见性设置为 false,则 locationsensor 在进入后台时会被禁用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-23
    • 1970-01-01
    • 1970-01-01
    • 2018-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多