检查GPS警报是否存在

时间:2012-02-23 08:37:05

标签: iphone ios ios5 ios4 uialertview

我想检查窗口上是否已有警报。警报是GPS的警报(例如“你的应用程序”想要使用当前位置的“不允许和允许”按钮)。如果屏幕上出现此警报,我想设置一些标志。如果有人知道,那么请帮助我解决这个问题。

2 个答案:

答案 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;

这会有所帮助......

答案 1 :(得分: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;
    }

}

谢谢,