2014-09-27 34 views
7

我有3可以與應用程序商店中看到的Estimote信標估計應用程序。蘋果AirLocation演示應用程序不顯示信標

現在我試圖運行蘋果的演示應用程序AirLocation AirLocate

我在APLDefaults.m文件到默認Estimote UUID _supportedProximityUUIDs = @[[[NSUUID alloc] initWithUUIDString:@"B9407F30-F5F8-466E-AFF9-25556B57FE6D"]];

我已使該區域開始startMonitoringForRegion爲改變UUID這stackoverflow說。

但他們沒有出現,你見過這個?或者我錯過了一些具體的估計。

問候

回答

29

的問題是,AirLocate是爲iOS7編寫,並在iOS8上,爲iBeacons等定位操作權限模型已經改變。爲了使程序在從XCode 6編譯時在iOS 8上運行,您需要在AppDelegate中添加請求權限的代碼。像這樣:

if([self.locationManager respondsToSelector:@selector(requestAlwaysAuthorization)]) { 
    [self.locationManager requestAlwaysAuthorization]; 
} 

這將提示用戶授權位置操作,包括信標。 您還需要編輯應用程序的info.plist,並添加一個名爲NSLocationAlwaysUsageDescription的新字符串鍵值,其值爲「此應用程序需要訪問位置服務」,以便操作系統可以提示用戶獲得此權限。

運行應用程序後,您可以檢查設置以查看是否已正確授予此權限。

+1

我發現我也不得不要求用戶權限在AppDelegate的通知喜歡這個崗位:http://stackoverflow.com/a/24161903/1735721或你贏了沒有像在7中那樣獲得與消息相同的UI。必須在代碼中設置斷點才能看到區域通知實際上正在發生。雖然它現在工作在8,但我發現迄今爲止它不能很好地工作......只是在很長一段時間內只得到一次區域通知。 – DennisWelu 2014-11-09 04:19:22

+0

還值得注意的是,蘋果的例子有不正確的通知鍵; http://nevan.net/2014/09/core-location-manager-changes-in-ios-8/ – 2015-01-09 11:11:37

2

我在iOS 9中注意到的另一個問題是校準有時不起作用。似乎是一個NSNumber轉換問題。在APLCalibrationCalculator.m下面編輯固定它: -

//measuredPower = [[sample valueForKeyPath:@"@avg.rssi"] integerValue]; 
    measuredPower = [[sample valueForKeyPath:@"@avg.rssi"] intValue];