Reachability Help - Определение WiFi

Я импортировал Reachability в свое приложение, и у меня есть пара вопросов с практическими рекомендациями для всех вас. Позвольте мне сначала объяснить свое приложение и другие инструменты.

Это приложение обменивается данными с двумя объектами ОДНОВРЕМЕННО: одноранговой сетью и Интернетом через 3G. Примечание. Специальная сеть НЕ подключена к Интернету. Это отлично работает - это уже реализовано и отлично тестируется.

С учетом сказанного, я хочу реализовать Reachability для обнаружения двух вещей.

1) Подключен ли пользователь к одноранговой сети Wi-Fi? (Еще лучше, если возможно, определить, подключен ли он к одноранговой сети Wi-Fi с префиксом WXYZ. Например, если в списке указаны две сети, одна называется Linksys, а другая - WXYZ-Testing_Platform, он знает подключен он к WXYZ или нет).

2) Может ли пользователь подключиться к Интернету через 3G (или 2G, и т. Д.) И получить доступ к нашему серверу?

Заранее спасибо

ИЗМЕНИТЬ, ЧТОБЫ ВКЛЮЧИТЬ ОТВЕТ ДЛЯ БУДУЩИХ:

Для 1), мой код выглядит так:

.h
#import  //for checking wifi network prefix

.m
- (BOOL) connectedToWifi
{

    CFArrayRef myArray = CNCopySupportedInterfaces();
    // Get the dictionary containing the captive network infomation
    CFDictionaryRef captiveNtwrkDict = CNCopyCurrentNetworkInfo(CFArrayGetValueAtIndex(myArray, 0));

    NSLog(@"Information of the network we're connected to: %@", captiveNtwrkDict);

    NSDictionary *dict = (__bridge NSDictionary*) captiveNtwrkDict;
    NSString* ssid = [dict objectForKey:@"SSID"];

    if ([ssid rangeOfString:@"WXYZ"].location == NSNotFound || ssid == NULL)
    {
        return false;
    }
    else
    {
        return true;
    }
}

И для 2) , я импортировал Reachability и использую этот метод всякий раз, когда я подключаюсь к серверу ... ПРИМЕЧАНИЕ: замените http://www.google. com с информацией о сервере

-(void) checkIfCanReachServer
{
UIAlertView *errorView;
    Reachability *r = [Reachability reachabilityWithHostName:@"http://www.google.com"];
    NetworkStatus internetStatus = [r currentReachabilityStatus];


    if(internetStatus == NotReachable) {
        errorView = [[UIAlertView alloc] 
                     initWithTitle: @"Network Error" 
                     message: @"Cannot connect to the server." 
                     delegate: self 
                     cancelButtonTitle: @"OK" otherButtonTitles: nil];  
        [errorView show];
    }
}

7
задан Halle 20 August 2011 в 15:16
поделиться