2011-02-08 23 views
5

Yapmakta olduğum bir uygulama için CLLocationManager ile denemeler yapıyorum. Konum Servisleri'nin etkin olup olmadığını ve bir kullanıcının uygulamamın geçerli konumlarını kullanmasına izin verip vermediğini kontrol etmeyi anlarım. Konum Hizmetlerinde değişiklik bildirimleri var mı?

bir kullanıcı daha sonra her iki kullanıcıyı benim app başlangıçta konumlarının kullanımı için izin verir ve varsa:

  1. açıkça
  2. uçak modunda telefon koyar konum hizmetlerini kapatır
  3. açıkça gözlerimi de-yetki app konumlarını kullanmak için

Uygulamamı yeniden açtıklarında otomatik olarak abone olabileceğime ve yanıtlayabileceğime dair bir bildirim gönderildi mi?

Değilse, bu senaryoyu elimden almanın en iyi yolu bu yüzden bu denetimi el ile AppDelegate'ın applicationDidFinishLaunching ve applicationWillEnterForeground yöntemlerine yerleştirmek için GPS koordinatlarını görüntüleyen görünümleri güncelleyebilir miyim?

Bir uygulamayı yeniden başlattığınızda, ilk görünüm için viewWillAppear tetiklenmediği ve bu görünümün GPS koordinatlarını göstererek arkadaş canlısı bir mesaja dönüşmesi gerektiğini söyleyen bir mesajın yeniden başlatılmasını istemek zorunda olmanın sebebi olduğunu düşünmemin nedeni. Konum hizmetlerini etkinleştirmek, AppDelegates düşünebildiğim en iyi kanca idi.

Teşekkürler!

cevap

2

Yaklaşımınız sağlam. Uygulamanın yeniden açılmasında Çekirdek Konumu'nın bulunmadığını veya ağ erişiminin değiştiğini tespit ederseniz, uygun şekilde güncellenmesi gereken bu viewControllers'a bir bildirim gönderebilirsiniz. NSNotificationCenter

'a bakın. Yukarıdakileri uyarlasanız bile, ağ erişiminin herhangi bir zamanda kaybedilebileceği her durumda viewDidAppear'da her seferinde bu denetimi yapmanızı öneririm. Artı herhangi bir yer kontrolünü yaptığınız hat testleri.

+0

Teşekkür alacak. 1) ViewWillAppear'ı ilk uygulama lansmanını kapatmak için kullanacağım ve bir görünüm ilk yüklendikten sonra bile ekranda bir ekran yüklenecek ve 2) applicationWillEnterForeground uygulamasını arka plandan yeniden açmayı kapsayacak şekilde kullanacağımı düşünüyorum. Benim testimde, viewDidAppear sadece bir görünüm ilk kez çağrıldığında çağrılır, bu yüzden hala uygulamadayken ağ erişilebilirliği değiştiğinde kullanmak istemem. – djibouti33

16
iOS 4.2 üzerinde

ve daha sonra bir temsilci görüşme Cevabınız için

- (void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status; 
+1

Bu kabul edilen cevap olmalı –

İlgili konular