Firemonkey,位置传感器在iOS

时间:2018-01-05 00:36:25

标签: ios delphi location firemonkey

我喜欢在后台模式下创建可以在iPhone上捕捉我的位置的应用程序, 但我有一个问题:

申请表不能提出表格许可requestAlwaysAuthorization 基于这篇文章http://delphiworlds.com/2016/02/location-sensor-work-in-the-background-on-ios-9/(演示应用程序也不要问)如果我在System.iOS.SensorsTiOSLocationSensor.DoStart: Boolean;FLocater.requestWhenInUseAuthorization更改为FLocater.requestAlwaysAuthorization,那么应用不要求任何权限。

当我允许FLocater.requestWhenInUseAuthorizationFLocater.setAllowsBackgroundLocationUpdates(True);时,应用程序在最小化时捕获位置,但在StatusBar中显示关于使用LocationSensor的大蓝色通知

但我需要以隐藏模式运行应用程序,我认为问题在于授权但不知道如何解决。 (Delphi 10.2.2)

我将不胜感激任何帮助

1 个答案:

答案 0 :(得分:4)

您只能在iOS 11或更高版本中使用showsbackgroundlocationindicator属性执行此操作:

https://developer.apple.com/documentation/corelocation/cllocationmanager/2923541-showsbackgroundlocationindicator

为了使用它,您需要按照与原始文章类似的方法,重新声明CLLocation管理器,添加方法:

procedure setShowsBackgroundLocationIndicator(showsBackgroundLocationIndicator: Boolean); cdecl;

..还重新声明CLLocationManager委托。在TiOSLocationSensor.DoStart中,您可以检查iOS 11并设置属性,例如:

// Turn off the annoying blue indicator
if TOSVersion.Check(11) then
  FLocater.setShowsBackgroundLocationIndicator(False);