是否有可能让手机“知道”特定的无线网络在特定的地理位置?
if (answer == YES)
{
than how?
}
else
{
can the phone figure this out by himself?
}另一个类似的问题:是否有任何方法开始监测一个区域的准确性为100米,但告诉CLLocationManager只使用的通过无线网络和蜂窝天线?因为,我不想给GPS供电,无论如何.
谢谢!
发布于 2011-06-14 09:59:48
iPhone定位很烂,你什么也做不了。
如果您越狱您的设备,您可以使用Apple80211专用框架来查找可用的Wi网络及其信号强度。但这也意味着你的应用程序将被拒绝。
如果用户手动连接到该网络上的Wi 您可以看到设备的MAC地址。,并使用它来猜测您的位置。因为Wi的范围是50米,这就是你所得到的精确度。
对于App开发人员来说,所有的定位系统都是透明的,这意味着应用程序不能禁用GPS、列表Wi或读取信号强度。你能做的最多的就是猜测你是通过GPS或Wi定位的,看看高度参数。
用例:你在购物中心,你想知道X店在哪里。可能没有GPS信号,如果你安装一个GPS中继器,你得到的位置,天线的中继器,而不是你的位置。即使你安装了十几个Wi接入点,你也不能要求用户手动连接,因为这是个麻烦,即使他安装了,他也能达到50到100米的精确性,而且这里和那里连接也有安全风险。基本上你完蛋了。
发布于 2012-02-05 23:01:20
我完全同意Jano的观点:苹果的逻辑比其他解决方案更有意义。无论如何,您可以很容易地获得您的WIFI网络标识:
-(void)LogInfo:(NSDictionary*)info forKey:(NSString*)key;
{
NSString* temp;
temp = [info objectForKey: key];
NSLog(temp);
}
- (void)fetchSSIDInfo
{
NSArray *ifs = (id)CNCopySupportedInterfaces();
NSDictionary* info = nil;
for (NSString *ifnam in ifs)
{
info = (id)CNCopyCurrentNetworkInfo((CFStringRef)ifnam);
NSString *temp = [NSString stringWithFormat:@"%@", [info description]];
[self AddToLog: temp];
[self LogInfo:info forKey:@"BSSID"];
[self LogInfo:info forKey:@"SSID"];
[self LogInfo:info forKey:@"SSIDDATA"];
[info release];
}
[ifs release];
}https://stackoverflow.com/questions/6341547
复制相似问题