2012-02-23 6 views
0

Я хочу проверить, присутствует ли предупреждение в моем окне или нет. Предупреждение о том, что GPS (sumthing как «ваше приложение» будет хотеть использовать ваше текущее местоположение с кнопками «Не разрешать и разрешать»). Я хочу установить некоторый флаг, если это предупреждение присутствует на экране. Если кто-нибудь это знает, пожалуйста, помогите мне в решении этой проблемы.проверка наличия GPS-оповещения или нет

+0

вы получите это предупреждение только один раз, когда приложение пытается использовать менеджер местоположения в первый раз, может быть, вы можете сделать ваши вещи сразу после запуска местоположения кормушки –

+0

я, я думал о используя флаг и сбросив его в первый раз. Но я хочу определить, присутствует ли предупреждение или нет. – anshul

+0

, что предупреждение является сгенерированным системой, может быть попытка прослушать какое-либо уведомление, которое публикуется при появлении этого предупреждения. –

ответ

0
for (UIWindow* window in [UIApplication sharedApplication].windows) { 
    NSArray* subviews = window.subviews; 
    if ([subviews count] > 0) 
    if ([[subviews objectAtIndex:0] isKindOfClass:[UIAlertView class]]) 
     return YES; 
} 
return NO; 

это поможет ...

+0

Я пробовал это, но я думаю, что этот метод полезен, когда вы представляете предупреждение с помощью [alsertView show] ;. Его не работает в случае оповещений iPhone (например, о службах определения местоположения) – anshul

+1

Могу ли я спросить, с какой целью вы хотите проверить это оповещение или нет.? Так что мы можем дать вам лучшее предложение в соответствии с этим. – Rupesh

0

Если вы разрабатываете для iOS4.2 или позже, чем вы можете authorizationStatus из CLLocationManager класса.

Для этого вам нужно будет указать переменную [CLLocationManager authorizationStatus], если ее значение равно kCLAuthorizationStatusNotDetermined, после чего появится предупреждение.

В iOS 5 или более поздняя версия являются одним из вариантов, посредством которого использование может сбросить предупреждение о местоположении в этом случае, и статус будет kCLAuthorizationStatusNotDetermined. Поэтому, если ваше приложение запущено, и пользователь переключается на установку для сброса этого свойства, то вам понадобится внедрить следующий метод делегирования CLLocationManagerDelegate.

- (void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status 
{ 
    switch (status) 
    { 
     case kCLAuthorizationStatusNotDetermined: 
      //If this is the case than alert will be shown 
      break; 
     case kCLAuthorizationStatusDenied: 

      break; 
     case kCLAuthorizationStatusRestricted: 

      break; 
     case kCLAuthorizationStatusAuthorized: 

      break; 
     default: 
      break; 
    } 

} 

Спасибо,

Смежные вопросы