Tag: 核心位置

iOS:我可以手动将wifinetworking与地理位置关联吗?

是否有可能使手机“知道”一个特定的无线networking在特定的地理位置? if (answer == YES) { than how? } else { can the phone figure this out by himself? } 另一个类似的问题:有什么办法可以开始监视一个精度为100米的区域,但是告诉CLLocationManager 只能通过wifinetworking和蜂窝天线来使用吗? 因为我不想加电GPS,不pipe… 谢谢!

IOS延迟的位置更新无法推迟

我正在考虑使用iOS活动跟踪器的延迟位置更新,这允许位置服务在后台。 我已经实现了build议的代码片段(见下文)。 在Xcodedebugging中,延迟位置尝试启动几次,直到位置数据以大约每秒1次的速度进入。 之后,它声称成功启动延迟,并且在指定时间段到期之后,成功触发器的callback也成功。 然而,在此期间,位置处理程序仍然每秒运行一次。 我读过,这是因为手机没有认为自己准备好进入后台,并在Xcodetesting这样做。 请注意,AppDelegate的“didEnterBackground”事件处理程序在closures屏幕时立即被调用,并在重新打开应用程序时恢复。 我使用与另一个testing断开电话相同的代码,在GPS附近窗口附近,屏幕closures或切换到完全不同的应用程序,它仍然从来没有实际推迟更新。 我可以告诉,因为networking更新每30秒钟仍然进入一次,而不是下面的代码示例中所需的120秒间隔。 还有什么需要实际延迟工作,因为没有错误发生在启动他们,他们完成callback? 为什么即使应用程序转到后台,位置更新仍然以每秒1次的速度继续? Iphone 5s,IOS 7.1.1 // .h file (partial) @interface MotionTracker : NSObject<CLLocationManagerDelegate, UIAccelerometerDelegate> @property (strong, nonatomic) CLLocationManager *locationManager; @end // .m file (parial) – (id) init { if(self = [super init]){ _locationManager = [[CLLocationManager alloc] init]; _locationManager.delegate = self; _locationManager.distanceFilter = kCLDistanceFilterNone; _locationManager.desiredAccuracy = kCLLocationAccuracyBest; […]

应用程序终止时,位置服务不会停止

我目前正在开发一个iPhone应用程序,需要包括AR在内的各种使用的位置服务。 我在模拟器和iPhone 3GS上testing了一切,一切都很顺利。 我最近在iPhone4和iPad2上进行testing,即使手动杀死应用程序,位置服务(状态栏中的小图标)也会一直显示。 禁用此图标的唯一方法是在设置中手动停止我的应用的位置服务。 有没有人知道这件事? 如果需要,我可以发布我的代码。 先谢谢你 编辑: 当我杀了应用程序,去定位服务,关掉我的应用程序的位置图标消失。 但是当我重新打开它时,它又重新出现了! 这是正常的吗?

我如何debugging应该由位置服务启动的iPhone应用程序,从终止状态进入后台?

我们被告知,通过苹果关于startMonitoringSignificantLocationChanges的文档,使用意义变化API的应用程序可以预期以下行为: 如果您启动此服务,并且您的应用程序随后终止,则系统会在新事件到达时自动将应用程序重新启动到后台。 在这种情况下,传递给应用程序委托的locationManager:didUpdateLocations:方法的选项字典包含UIApplicationLaunchOptionsLocationKey键,表示由于位置事件而启动了您的应用程序。 重新启动后,您仍然必须configuration一个位置pipe理器对象并调用此方法来继续接收位置事件。 当您重新启动位置服务时,当前事件会立即传送到您的委托。 另外,即使在启动位置服务之前,您的位置pipe理器对象的位置属性也会填入最近的位置对象。 来源: Apple Docs 我的问题是,我将如何去debugging和/或testing呢? 只要我终止应用程序,我不知道发生了什么(即debugging会话被杀死的应用程序)。 我什么时候才能知道iOS是否在后台启动了我的应用程序,并且UIApplicationLaunchOptionsLocationKey的launchOption键被设置了? 更重要的是,如何知道被执行的代码块是否正常工作? 如何快速testing这个场景,而不必在终止我的应用程序后驾驶,希望我写的代码能够神奇地工作? 任何帮助非常感谢!

如何让GPS应用程序在没有停顿的情况下在后台运行

我有一个问题,保持GPS在后台运行。 当应用程序在后台时,我成功保持GPS运行,但有时会停止。 我注意到,当我进入一个build筑物时停下来,我在那里停留2-3个小时。 “停止”意味着即使位置服务图标仍然打开,我仍然没有收到任何GPS点。 然后,当我离开,我没有收到任何积分,直到我把我的应用程序前景。 我将pausesLocationUpdatesAutomatically属性设置为NO。 所以,一切工作正常,直到我进入一个弱gps信号的位置。 当我离开那个地区时,我不再收到积分,即使我应该因为GPS信号现在是好的。 当应用程序进入后台时,这是我的代码: – (void)applicationWillResignActive:(UIApplication *)application { NSLog(@"[AppDelegate]: Application entering in background!"); if(doesUserWantGPSTracking) { [self stopGPS]; UIApplication *app = [UIApplication sharedApplication]; bgTask = [app beginBackgroundTaskWithExpirationHandler: ^{ dispatch_async(dispatch_get_main_queue(), ^{ if( bgTask != UIBackgroundTaskInvalid ) { [app endBackgroundTask:bgTask]; bgTask = UIBackgroundTaskInvalid; } }); }]; dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ [self startGPS]; dispatch_async(dispatch_get_main_queue(), ^{ […]

如果后台应用程序无法自动启动,Cardcase如何在某个位置启动?

Cardcase应用程序可让您知道您是否与前一个关系相关的商店(如果您已设置付款标签等)。 如果后台运行的应用程序无法在设备启动时自动启动,该应用程序如何工作? 编辑使我的问题更清晰:我不问如何监视位置更改或如何监视位置更改在后台。 我的问题是,如果用户安装这个应用程序,然后添加一些标签的一些位置,然后他们重新启动他们的iPhone,然后这个应用程序如何随后通知他们,如果应用程序启动时不支持的位置, 这个应用程序(以及任何其他应用程序)是否必须依赖于在每次重新启动设备后用户明确地启动它?

核心位置不请求用户权限

我正在testing的应用程序要求在首次启动设备时使用用户位置。 我卸载了应用程序,删除了构build文件夹,并清除了所有目标,但核心位置再也不会请求权限。 它刚刚closures,必须在用户设置中启用。 任何想法,即使在卸载应用程序后,为什么用户select仍然保持不变? 非常奇怪的行为,担心它可能会让我被拒绝的店面。

确定用户是否拒绝CoreLocation权限

是否有可能以编程方式确定用户拒绝使用其位置的权限? 其次,如果用户拒绝了权限,是否可以重新提示用户?

requestAlwaysAuthorization不显示权限警报

我试图用一些花哨的iBeacons没有成功,kCLAuthorizationStatusNotDetermined所有的时间。 根据其他问题,这是一个要求将这些键添加到info.plist(一些问题说一个,其他人都说)。 根据一篇关于iBeacons的文章,我需要Always选项。 <key>NSLocationWhenInUseUsageDescription</key> <string>Nothing to say</string> <key>NSLocationAlwaysUsageDescription</key> <string>Permiso para acceder siempre</string> 在viewDidAppear: self.locManager = [[CLLocationManager alloc]init]; self.locManager.delegate = self; [self.locManager requestAlwaysAuthorization]; NSUUID* region1UUID = [[NSUUID alloc]initWithUUIDString:@""]; //ibeacon real UUID between "". Checked it's not nil. self.beaconRegion = [[CLBeaconRegion alloc] initWithProximityUUID:proximityUUID identifier:@"myCoolString"]; self.beaconRegion.notifyEntryStateOnDisplay = YES; self.beaconRegion.notifyOnEntry = YES; self.beaconRegion.notifyOnExit = NO; [self.locManager startMonitoringForRegion:self.beaconRegion]; [self.locManager startRangingBeaconsInRegion:self.beaconRegion]; […]

iOS CoreLocation海拔高度

在iOS 4.0之前, CoreLocation正确报告高度,现在总是报告为0英尺。 -(void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation*)newLocation fromLocation:(CLLocation *)oldLocation { NSString *tLatitude = [NSString stringWithFormat:@"%3.5f", newLocation.coordinate.latitude]; NSString *tLongitude = [NSString stringWithFormat:@"%3.5f", newLocation.coordinate.longitude]; /* the following returns 0 */ NSString *tAltitude = [NSString stringWithFormat:@"%i", newLocation.altitude]; /* theres more code, but it's not relevant, and this worked prior to iOS 4.0*/ [manager stopUpdatingLocation]; } 不在设备和模拟器上工作,是否有其他人遇到这个问题?