0

아이폰 4에서 중요한 위치 변경을 사용하여 iOS에 앱을 작성하려고하는데, 위치 위임자가 위치 업데이트를 수신 할 때마다 로컬 알림이 전송됩니다. 내 코드는 아래에 게시됩니다. 나는 앱을 사임하고 배경에서 닫는다. 전화가 깨어있을 때 (화면이 켜져있는 경우) 응용 프로그램이 작동하여 알림이 실행되지만 휴대 전화를 잠자기 상태로 전환하면 (화면이 검게 표시됨) 전화를 다시 켤 때까지 알림이 수신되지 않습니다. 홈 버튼을 누르고 텍스트를받는 등의 작업을 수행합니다. 그런 다음 알림이 시작됩니다. 기기가 잠자기 상태 인 경우에도 위치 업데이트를 등록하려면 무엇을해야합니까? 미리 감사드립니다.중요한 위치 변경은 기기가 깨어 난 경우에만 작동합니다.

SigLoc.h 

#import <UIKit/UIKit.h> 
#import <CoreLocation/CoreLocation.h> 

@interface SigLocViewController : UIViewController <CLLocationManagerDelegate> { 
CLLocationManager *locationManager; 

} 

@property (nonatomic, retain) CLLocationManager *locationManager; 

@end 

SigLoc.m 

#import "SigLocViewController.h" 

@implementation SigLocViewController 
@synthesize locationManager; 

- (void)viewDidLoad { 
    self.locationManager = [[CLLocationManager alloc] init]; 
    locationManager.delegate = self; 
    locationManager.desiredAccuracy = kCLLocationAccuracyBest; 
    [locationManager startMonitoringSignificantLocationChanges]; 
} 

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation  *)newLocation fromLocation:(CLLocation *)oldLocation 
    UIApplication *app = [UIApplication sharedApplication]; 
    UILocalNotification *alarm = [[[NSClassFromString(@"UILocalNotification") alloc] init] autorelease]; 
    if (alarm) { 
     alarm.fireDate = nil; 
     alarm.repeatInterval = 0; 
     alarm.alertBody = @"Location Update"; 
     alarm.soundName = UILocalNotificationDefaultSoundName; 
     alarm.hasAction = NO; 
     [app presentLocalNotificationNow:alarm]; 
    } 
} 

답변

0

내 생각에 앱이 백그라운드로 들어갈 때보기가 활성화되어 있지 않으므로 알림을받을 방법이 없습니다. 앱 위임자를 위치 관리자 대리인으로 지정하고 콜백을 SigLoc 위치 관리자 대리인에게 전달합니다.

내 응용 프로그램 대리인에게 위치 관리자 대리인을 이동할 때까지 해결되지 않은 콜백을받는 것과 유사한 문제가있었습니다. 나는 거기서 시작해서 당신의 방법으로 돌아갈 것입니다.

+0

저는 여전히 고등학생으로 프로그래밍을 시도하고 있으며 대표자를 잘 알고 콜백을 전달하지는 않습니다. 내가 시도한 것은 위에서 코드를 가져 와서 AppDelegate.h와 AppDelegate.m으로 옮기는 것이었고 나는 여전히 같은 문제를 경험했다. 이 문제를 해결하는 적절한 방법은 무엇입니까? 또는이 콜백을 전달하는 방법에 대한 좋은 자습서를 어디서 찾을 수 있습니까? – videoadventures

관련 문제