簡體   English   中英

iOS-關閉WiFi的地理圍欄

[英]iOS - Geofencing with WiFi turned off

我有在iPhone上創建地理圍欄的代碼,當didExitRegion被調用時,它將觸發一些代碼被執行。 但是,我發現當我關閉WiFi時,didExitRegion永遠不會觸發。 在iOS上監視區域更改是否需要WiFi? 我想要的精度設置為kCLLocationAccuracyHundredMeters。 我正在iOS 6.1和iPhone 4上進行測試。

這是我用於設置位置監控的代碼:

- (id)init {
self = [super init];
if (self) {
    CLLocationManager *manager = [[CLLocationManager alloc] init];
    manager.delegate = self;
    manager.desiredAccuracy = kCLLocationAccuracyHundredMeters;
    manager.distanceFilter = RADIUS/10.0;
    manager.headingFilter = kCLHeadingFilterNone;
    self.locationManager = manager;
    self.authorizationStatus = [CLLocationManager authorizationStatus];
}
return self;
}

謝謝

iOS設備使用三種方法來發現用戶位置。 從(通常)最准確到最不准確,它們是:

  1. GPS硬件
  2. 通過識別附近的wifi網絡
  3. 細胞塔三角剖分

如果您的應用未使用GPS或未運行(即先前已終止),則設備將嘗試使用上述方法2和3來找到用戶。 因此,設備定位用戶的能力(當不使用GPS硬件或GPS信號較弱時)取決於wifi網絡和基站的可用性。 wifi網絡和手機信號塔越多,位置精度越高。 因此,當用戶進入或離開監視區域(即越過“地理范圍”)時,根本無法准確預測用戶何時將收到通知。 (當然,如果所討論的區域始終相同,則設備將在每種情況下或多或少以相同的精確度定位用戶)。

以下是《 位置感知編程指南》中的相關文檔:

特定的閾值距離由當前可用的硬件和定位技術確定。 例如,如果禁用了Wi-Fi,則區域監視的准確性會大大降低。 但是,出於測試目的,您可以假定最小距離約為200米。

因此,不需要wifi即可運行區域監視,但是啟用該功能后,您的設備將更有機會確定用戶是否越過區域地理圍欄。

如果關閉WiFi,則位置精度會降低。 如果沒有GPS信號(在某些建築物內),則不會獲得任何位置更新。 您是否在室外或嘗試使用位置模擬器進行測試?

此外,如果您具有GPS(iPhone或帶SIM卡的iPad),則地理圍欄功能也不需要WiFI。

沒有使用核心位置的wifi,可能會發生奇怪的奇怪事情。 為了給您提供幫助,我將擺脫距離過濾器,它可能會使事情變得混亂,並且不是很有幫助。 我可能只將kCLLocationAccuracyBest用於需要設置地理圍欄所需的精度的任何事情。 對我來說,使用其他精度和過濾器有時會使gps儀表偏離1000米,並且需要一到兩分鍾來糾正自身。 如果這是過多的電池,則根據離柵欄的距離,設置一個關閉並重新打開的系統。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM