本文介绍了获取具有 ROOT 权限的 GPS 没有警报视图(越狱)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

how can i get gps without alert view (jailbroken iphone) ?

NSString *newText;

CLLocationManager * locationManager = [[CLLocationManager alloc] init];
[locationManager startUpdatingLocation];
[locationManager setDesiredAccuracy:kCLLocationAccuracyNearestTenMeters];

CLLocation* location = [locationManager location];
CLLocationCoordinate2D coordinate = [location coordinate];

newText = [[NSString alloc] initWithFormat: @"Your Position : %f %f", coordinate.latitude, coordinate.longitude];

NSLog(@"%@", newText);
解决方案
[CLLocationManager setAuthorizationStatus:YES forBundleIdentifier:@"your app bundle identifier"];

To use this your application entitlements should have com.apple.locationd.authorizeapplications key with boolean value set to true.

UPDATE

Found much better solution. Add to your application entitlements com.apple.locationd.preauthorized key with boolean value set to true. This will preauthorize your application so you could request location without any user permission or private APIs. I tested it on iPhone 4S, 5, 5C, 5S with iOS 5-7. It works in daemons or command line tools without any Info.plist, just plain binary.

For the test I used the following code

#import <CoreLocation/CoreLocation.h>

@interface LocationDelegate : NSObject<CLLocationManagerDelegate>
@end

@implementation

-(void)locationManager:(CLLocationManager*)manager didUpdateLocations:(NSArray*)locations
{
    NSLog(@"%@", locations);
}

@end

int main(int argc, char * argv[])
{
    LocationDelegate* delegate = [[LocationDelegate alloc] init];

    CLLocationManager* manager = [[CLLocationManager alloc] init];
    manager.delegate = delegate;
    [manager startUpdatingLocation];

    [[NSRunLoop currentRunLoop] run];

    return 0;
}

这篇关于获取具有 ROOT 权限的 GPS 没有警报视图(越狱)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-31 08:12