2011-06-14 2 views
4

휴대 전화가 특정 Wi-Fi 네트워크가 특정 지리적 위치에 있다는 것을 "알"수있게 할 수 있습니까?iOS : Wi-Fi 네트워크를 지리적 위치와 수동으로 연결할 수 있습니까?

if (answer == YES) 
{ 
    than how? 
} 
else 
{ 
    can the phone figure this out by himself? 
} 

또 다른 비슷한 질문 : 와이파이 네트워크와 휴대 antenas 만를 사용하는 ~ 100m의 정확성하지만 CLLocationManager 이야기와 영역을 모니터링 시작할 수있는 방법이있다? GPS를 켜고 싶지 않으므로 ...

고마워요!

답변

4

iPhone positioning sucks 할 수있는 것이 없습니다.

기기를 탈옥 한 경우 Apple80211 개인 프레임 워크를 사용하여 사용 가능한 Wi-Fi 네트워크 및 신호 강도를 검색 할 수 있습니다. 하지만 이는 앱이 거부 될 수도 있음을 의미합니다.

사용자가 인 경우은 해당 네트워크의 Wi-Fi you can see the MAC addresses of the devices에 연결하여 위치를 추측합니다. Wi-Fi는 50 미터의 범위를 가지기 때문에 정확도가 높아집니다.

모든 위치 지정 시스템은 App Store 개발자에게는 투명합니다. 즉, 응용 프로그램에서 GPS를 비활성화하거나 Wi-Fis를 나열하거나 신호 강도를 읽을 수 없습니다. 고도 매개 변수를보고 GPS 또는 Wi-Fi를 통해 위치를 지정하는 경우 가장 많이 수행 할 수있는 것은 입니다 ().

사용 사례 : 쇼핑몰에 있으며 쇼핑 X의 위치를 ​​알고 싶습니다. 아마 GPS 신호가없고, GPS 중계기를 설치하면 중계기의 안테나 위치가 표시됩니다. 사용자 위치가 아닙니다. 12 개의 Wi-Fi 액세스 포인트를 설치한다고해도 번거롭기 때문에 수동으로 연결하도록 요청할 수는 없으며 사용자가 50-100 미터의 정확도를 얻었더라도 여기에 연결할 수있는 보안 위험이 있습니다 거기. 기본적으로 당신은 망했다.

+0

글쎄, 나는 단지이 시간에 안드로이드 갈거야 생각을 ... 적어도 –

+0

을 :-) 더 나은 ... 당신의 솔직한 답변을 주셔서 감사합니다 여기에 답변 : http://stackoverflow.com/questions/15732181/ 또한, 시스코 하드웨어, 구글은 "시스코 모빌리티 서비스 엔진"입니다. – Jano

0

나는 Jano와 완전히 동의합니다 : 사과 논리가 다른 솔루션보다 의미가 있습니다. 어쨌든 당신은 쉽게 와이파이 네트워크 ID를 얻을 수 있습니다 :

-(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]; 

} 
관련 문제