使用wifi网络的iOS定位



我需要知道是否可以在iOS中使用wifi网络获取用户位置。

我读到了关于该方法的重大位置更改,但我不知道用户是否有必要连接到无线网络,或者只是当设备检测到事件周围有新的wifi网络时。

正如你所看到的,我对这个主题一无所知,有人能给我一点指导吗?

Used Reachability class
@property (nonatomic) Reachability *hostReachability;
@property (nonatomic) Reachability *internetReachability;
@property (nonatomic) Reachability *wifiReachability;
Call below method in didFinishLaunchingWithOptions
-(void)makeConnectionOverRechability {
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reachabilityChanged:) name:kReachabilityChangedNotification object:nil]; //When intenet connectivity change this method call
    NSString *remoteHostName = @"www.apple.com";
    self.hostReachability = [Reachability reachabilityWithHostName:remoteHostName];
    [self.hostReachability startNotifier];
    [self updateInterfaceWithReachability:self.hostReachability];
    self.internetReachability = [Reachability reachabilityForInternetConnection];
    [self.internetReachability startNotifier];
    [self updateInterfaceWithReachability:self.internetReachability];
    self.wifiReachability = [Reachability reachabilityForLocalWiFi];
    [self.wifiReachability startNotifier];
    [self updateInterfaceWithReachability:self.wifiReachability];
}
#pragma mark-
#pragma mark Internect Connectivity
-(BOOL)checkInternetConnection
{
    Reachability *reach = [Reachability reachabilityWithHostName:@"www.google.com"];
    NetworkStatus internetStatus = [reach currentReachabilityStatus];
    if ((internetStatus != ReachableViaWiFi) && (internetStatus != ReachableViaWWAN))
    {
        return internetStatus;
    }
    return internetStatus;
}
- (void) reachabilityChanged:(NSNotification *)note
{
    Reachability* curReach = [note object];
    NSParameterAssert([curReach isKindOfClass:[Reachability class]]);
    [self updateInterfaceWithReachability:curReach];
}
- (void)updateInterfaceWithReachability:(Reachability *)reachability
{
    if (reachability == self.hostReachability)
    {
    }
    if (reachability == self.internetReachability)
    {
        [self configureTextField:reachability];
    }
    if (reachability == self.wifiReachability)
    {
        [self configureTextField:reachability];
    }
}
- (void)configureTextField:(Reachability *)reachability
{
    NetworkStatus netStatus = [reachability currentReachabilityStatus];
//check here only wifi connection
    switch (netStatus)
    {
        case NotReachable:  {
            NSLog(@"not Connected+++++++++++");
            break;
        }
        case ReachableViaWWAN:  {
            NSLog(@"Connected");
                      break;
        }
        case ReachableViaWiFi: {
            NSLog(@"Connected");
            }
            break;
        }
}

最新更新