我正在開發一個使用位置服務的iOS應用程序。該應用在iPhone(3GS和4)上運行良好,但在iPad上運行時不會請求位置服務。也就是說,用戶永遠不會被要求啓用位置服務,應用程序也不會出現在「設置」應用程序的位置服務部分。定位服務不會在iPad上激活
我見過一些論壇文章描述類似的問題,但所有這些都通過iTunes(通過特設分發)安裝在iPad上的應用程序解決,而不是通過Xcode運行它,或通過重置位置警告。我在iPad,iPad 2和iPad模擬器上嘗試了這兩種解決方案,都無濟於事。
我們使用以下代碼來啓用位置服務更新。我們通過設備調試和NSLog
的安置驗證了我們的代碼正在運行。
- (id)init {
[super init];
if (clManager == nil) {
clManager = [[CLLocationManager alloc] init];
}
clManager.delegate = self;
[self startLocationMonitoring];
return self;
}
- (BOOL)isLocationAvailable {
return [CLLocationManager significantLocationChangeMonitoringAvailable];
}
- (void)startLocationMonitoring {
if ([self isLocationAvailable]) {
[clManager startMonitoringSignificantLocationChanges];
} else {
// handle lack of Location Services
}
}
非常感謝,這是我需要知道的。在我的應用程序中,我使用startMonitoringSignificantLocationChange,許多iPad和iPod用戶都報告說位置服務無法正常工作。我決定切換到startMonitoringLocations以支持這些用戶,以防重大更改位置更改監控可用返回NO。謝謝你的提示! – MyCSharpCorner 2012-03-13 04:45:41
是的,這是正確的。 iPad 1 WiFi不支持它。我剛剛自己調試過。 iPad 1 WiFi + 3G支持它。我決定使用startLocationMonitoring,然後當我收到一個位置時再關閉它 - 這對我的目的來說很好。或者,您可以啓動位置監控並使用distanceFilter指定您自己的「重要」位置更改。 – bandejapaisa 2012-10-03 15:51:03