Как определить, что устройство не имеет сим-карты с помощью iphone SDK? - PullRequest
0 голосов
/ 31 октября 2009

я использую эти методы для получения моего местоположения. Все отлично работает в simulator.but на реальном устройстве работает очень быстро. Как я могу замедлить это, а также как я могу показать ошибку только один раз, если устройство не вставило sim а также для пользователя, которому запрещено использовать текущее местоположение. вот методы -

-(void)GetCurrentLocation {
 // Create the location manager if this object does not
 // already have one.
 if (nil == locationManager)
  locationManager = [[CLLocationManager alloc] init]; 
 if (locationManager.locationServicesEnabled == NO) {
    UIAlertView *servicesDisabledAlert = [[UIAlertView alloc] initWithTitle:@"Location Services Disabled" message:@"You currently have all location services for this device disabled. If you proceed, you will be asked to confirm whether location services should be reenabled." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
    [servicesDisabledAlert show];
    [servicesDisabledAlert release];
 [locationManager release];
    }       
else{
  locationManager.delegate = self;
  locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters; 
  [btnGPSFix setHidden:NO];
  [UIView beginAnimations:nil context:nil];
  [UIView setAnimationDuration:1.0];// Sub. duration  
  [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:btnGPSFix cache:YES];
  [self showMsg:@"Getting a GPS fix..." WithDelay:7];
  [UIView commitAnimations];
  [locationManager startUpdatingLocation];
 }
}

// Делегировать метод из протокола CLLocationManagerDelegate.

  - (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation {
 // If it's a relatively recent event, turn off updates to save power
 NSDate* eventDate = newLocation.timestamp;
  NSTimeInterval howRecent = [eventDate timeIntervalSinceNow];
 if (abs(howRecent) < 5.0) {
  [manager stopUpdatingLocation];  
  printf("latitude %+.6f, longitude %+.6f\n",newLocation.coordinate.latitude,newLocation.coordinate.longitude);
  LatitudeData = [[NSString alloc] initWithFormat:@"%f",newLocation.coordinate.latitude];
  LongitudeData = [[NSString alloc] initWithFormat:@"%f",newLocation.coordinate.longitude];
 [UIView beginAnimations:nil context:nil];
 [UIView setAnimationDuration:1.0];// Sub. duration  
 [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:btnGPSFix cache:YES];
  [self showMsg:@"GPS Acquired" WithDelay:4];
  [UIView commitAnimations];
  [self insertIntoDataBase];
  }
  // else skip the event and process the next one.
 }

вот мой метод [self showMsg: WithDelay:]

 - (void)showMsg:(NSString*)Message WithDelay:(int)delay
 {
 CGRect frame = CGRectMake(30, 366, 259, 37);
 [btnGPSFix setTitle:Message forState:UIControlStateNormal];
 [UIView beginAnimations:nil context:NULL];
 [UIView setAnimationDuration:1.0]; 
 frame.origin.y = 366;
 btnGPSFix.frame = frame; 
 [UIView commitAnimations]; 
 // Hide the view after the requested delay
 [self performSelector:@selector(HideGpsFixButton) withObject:nil afterDelay:delay]; 
}

Вот HideGpsFixButton Метод

- (void)HideGpsFixButton
{
 // Slide the view down off screen
 CGRect frame = CGRectMake(30, 366, 259, 37); 
 [UIView beginAnimations:nil context:NULL];
 [UIView setAnimationDuration:1.0];
 frame.origin.y = 480;
 btnGPSFix.frame = frame; 
 [UIView commitAnimations];

}

Я проверил на устройстве, оно показывает получение сообщения об исправлении GPS. В устройстве не установлена ​​SIM-карта. Я хочу показать только одно сообщение, что на вашем устройстве не установлена ​​SIM-карта или если пользователь запретил службу определения местоположения, то покажите сообщение. служба определения местоположения отключена пользователем. Любая помощь приветствуется.

1 Ответ

1 голос
/ 01 ноября 2009

Вы не можете, Apple не предоставляет никакой информации о симе, сотовом радио, сети, в которой вы находитесь, и т. Д. Если вы хотите эту функцию, вам следует файл ошибка с Apple, объясняющая, почему тебе это нужно.

...