3
我寫了一個作爲守護進程開始的小應用程序。它基本上只會輸出手機的GPS位置。iOS越獄 - 如何在後臺獲取位置
的main.m文件:
int main(int argc, char *argv[]) {
NSAutoreleasePool *p = [[NSAutoreleasePool alloc] init];
LocationController *obj = [[LocationController alloc] init];
[obj getLocation];
NSRunLoop *runLoop = [NSRunLoop currentRunLoop];
[runLoop run];
[p drain];
return 0;
}
的LocationController.m
@implementation LocationController
@synthesize locationManager;
-(id)init {
self = [super init];
if(self) {
trackingGPS = false;
locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
}
return self;
}
-(void)getLocation {
[locationManager startUpdatingLocation];
}
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation {
NSLog(@"NEW LOCATION :: %@", newLocation);
}
- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error {
NSLog(@"LOCATION ERROR : %@", error);
}
-(void) dealloc {
[locationManager release];
[super dealloc];
}
@end
所以,如果我運行應用程序手動關閉跳板,它工作正常,並記錄GPS定位......至少持續15-20秒...然後跳板終止應用程序,因爲它不會反彈 - 這是一種預期的行爲。
如果我在啓動時啓動應用程序(launchDaemon),它也可以正常啓動,但委託函數didUpdateToLocation永遠不會被調用!
我在iOS 5上,所以不知道是什麼問題。 任何幫助是真正的讚賞。
THX !!
嘿aguy。 Thx的提示,但它仍然無法工作!委託函數未被調用。但我認爲這在iOS 5+上已經不可行了 – Pascal 2012-03-01 23:38:48