デーモンとして起動する小さなアプリケーションを作成しました。基本的には携帯電話の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 !!
こんにちは。ヒントのThxしかしそれはまだ動作しません!デリゲート関数は呼び出されません。しかし、これはiOS 5以降ではこれ以上できないと思います – Pascal