首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS:我可以手动将wifi网络与地理位置联系起来吗?

iOS:我可以手动将wifi网络与地理位置联系起来吗?
EN

Stack Overflow用户
提问于 2011-06-14 09:24:36
回答 2查看 4.8K关注 0票数 4

是否有可能让手机“知道”特定的无线网络在特定的地理位置?

代码语言:javascript
复制
if (answer == YES)
{  
    than how?
}
else
{
    can the phone figure this out by himself?  
}

另一个类似的问题:是否有任何方法开始监测一个区域的准确性为100米,但告诉CLLocationManager只使用通过无线网络和蜂窝天线?因为,我不想给GPS供电,无论如何.

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-14 09:59:48

iPhone定位很烂,你什么也做不了。

如果您越狱您的设备,您可以使用Apple80211专用框架来查找可用的Wi网络及其信号强度。但这也意味着你的应用程序将被拒绝。

如果用户手动连接到该网络上的Wi 您可以看到设备的MAC地址。,并使用它来猜测您的位置。因为Wi的范围是50米,这就是你所得到的精确度。

对于App开发人员来说,所有的定位系统都是透明的,这意味着应用程序不能禁用GPS、列表Wi或读取信号强度。你能做的最多的就是猜测你是通过GPS或Wi定位的,看看高度参数。

用例:你在购物中心,你想知道X店在哪里。可能没有GPS信号,如果你安装一个GPS中继器,你得到的位置,天线的中继器,而不是你的位置。即使你安装了十几个Wi接入点,你也不能要求用户手动连接,因为这是个麻烦,即使他安装了,他也能达到50到100米的精确性,而且这里和那里连接也有安全风险。基本上你完蛋了。

票数 4
EN

Stack Overflow用户

发布于 2012-02-05 23:01:20

我完全同意Jano的观点:苹果的逻辑比其他解决方案更有意义。无论如何,您可以很容易地获得您的WIFI网络标识:

代码语言:javascript
复制
-(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];

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6341547

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档