1

我正在开发一个项目,当用户到达特定位置时,我需要触发通知,甚至是后台应用程序。做这个的最好方式是什么?

我发现如下。

locationManager = [CLLocationManager new];
[locationManager startUpdatingLocation];

或者

[sharedService.locationManager stopMonitoringSignificantLocationChanges];

或者

[locationManager startMonitoringForRegion:region];

关于startUpdatingLocation我在 3-4 分钟后在模拟器和 ipod 上收到持续通知。文件说它会耗尽电池,应用商店可能不接受,因为这种方法必须由导航类型等应用程序使用。

关于stopMonitoringSignificantLocationChanges文件说它使用蜂窝网络。我不确定它是否适用于 ipod。在我的 ipod 上不工作。这个方法需要sim卡吗?这种方法是如何工作的?意味着我应该走一段距离才能让这种方法得到响应?我走了1-2公里,但没有用。

关于startMonitoringForRegion我用过

if([CLLocationManager regionMonitoringEnabled])
        NSLog(@"monitering enable");
    else
        NSLog(@"monitering not avail");

对于 Ipod,我得到了monitering not avail. 客户还检查了他的iphone。他也没有得到通知。

请问有人可以解释一下这种方法吗?如果有任何其他方式在后台找到位置,请告诉。

编辑:我正在使用 startUpdatingLocation。didUpdateToLocation在设备上,它每 5 分钟调用一次方法。会用很多电池吗?appstore 会接受这个吗?

如果我使用 startUpdatingLocation 将 appstore 接受应用程序吗?因为我的需要只是在用户到达特定地点时发出通知。

4

1 回答 1

0

根据您描述的应用程序要求,我认为 - startMonitoringForRegion: 是最好的方法,请查看下面的 Apple Doc 片段...

您可以使用区域监控服务在用户跨越基于区域的边界时收到通知。区域监控适用于地理区域(由 CLCircularRegion 类表示)和信标区域(由 CLBeaconRegion 类表示)。您进行区域监控以检测指定区域的边界交叉点,并使用这些边界交叉点来执行相关任务。例如,在接近干洗店时,应用程序可以通知用户拿起任何已经被丢弃并准备好的衣服。

您的应用程序没有跟踪或路由相关的应用程序,因此我认为使用 [locationManager startUpdateLocation] 会过度使用。

于 2015-07-31T23:47:10.587 回答