2010-05-21 91 views
0

我知道有几个应用程序假冒设备的位置,但具体是我想要做的就是使用从网址抓取的位置。设备的假位置(自定义)

我应该寻找什么方向来设置设备上的位置。

我的情况是一个越狱的Wi-Fi iPad连接到一个连接。 nexus可以托管一个后台服务,当接收到请求时,它会使用当前位置的gps数据进行响应。越狱后的ipad将有一个后台服务,它可以通过提交一个请求给系绳连接一服务来在一个时间间隔或者每个请求的基础上(取决于我如何实现它)更新位置。然后这些数据将被设置在iPad上,并且请求位置的应用程序将获得服务数据。

目标是重新创建位置faker应用程序的功能,但欺骗性位置例外来自nexus gps通过服务,但我还没有找到如何设置设备的位置数据。我可以在每个应用程序的基础上实现这一点,但是让任何应用程序都可以使用它是非常棒的。

回答

0

挂钩到核心位置或使用定位缓存似乎是执行此操作的最佳方法。尽管我还没有实现任何东西。那就是要走的路线。

1

那么,在iPhone上获取位置的方式是通过CLLocationManager。如果你想获得一个自定义位置,那么只需将其子类并覆盖startUpdatingLocation方法为而不是调用超级,然后就自己调用委托方法。喜欢的东西:

@interface CustomLocationManager : CLLocationManager { 

} 
@end 

@implementation CustomLocationManager 

- (void) startUpdatingLocation { 
    [[self delegate] locationManager:self didUpdateToLocation:customLocation fromLocation:nil]; 
} 

@end 

然后,你可以这样做:

CLLocationManager * manager = [[CustomLocationManager alloc] init]; 
[manager setDelegate:self]; 
[manager startUpdatingToLocation]; 
+0

但这只适用于其他位置在当前应用程序管理器正确吗?我正在寻找一个后台服务运行,为所有请求它的应用程序设置位置。 – AtomRiot 2010-05-21 21:23:23

+0

@AtomRiot有没有办法做到这一点在非越狱设备 – 2010-05-21 21:47:51

+0

是的,我知道。这是针对我的场景的一次性解决方案,在我的场景中它是一个越狱设备。那个事实在提到最初的问题 – AtomRiot 2010-05-21 22:03:03

2

核心位置呈现显著的隐私和个人安全问题。出于这个原因,即使是越狱设备也很难破解或欺骗。据我所知,每次发出位置请求时都会计算位置(这就是为什么会耗尽电池的原因)。没有可轻松设置的文件或设置。

为了欺骗所有应用程序的位置,您必须修补Core Location调用的系统代码。该系统代码没有文档,因为它全部是Apple专有的。出于某种原因,您必须找到反向设计Apple代码的人。

最好的办法是看看是否有自定义的进程在运行,管理位置,然后用你自己的一个进程替换整个进程,该进程只返回欺骗性的位置。

无论如何,您基本上必须重新创建Core Location调用的整个接口,以确保每个应用程序中的每个Core Location调用都能正常工作。您正在寻找API中没有文档的大量低级C编码。得到它的可能性相当低。