2011-01-29 3 views
1

Есть ли прямой путь к «брут силы» сетевого соединения (сотового и WIFI) и обратно на iphone? Я работаю над приложением, которое синхронизируется с помощью Dropbox и хочет протестировать & отладить мой код восстановления ошибок из потерянных соединений.Быстрый способ подключения к сети для отладки?

UPDATE: Я должен был быть более конкретным, я хочу отключить это в sw. Например, после запуска запроса на Dropbox, я хочу имитировать неудачную загрузку, отключив сеть.

+0

Возможно, вы не сможете манипулировать связью iPhones только с вашего приложения. Я определенно не специалист по программированию на iPhone, но подумал ли вы об использовании таймеров или о прерывании функции, загружающей файл? – slhck

ответ

0

Открыть настройки и включить режим полета на, чтобы отключить все сетевые подключения; выключен для повторного включения.

EDIT: Чтобы включить режим полета с помощью IOS SDK (2.x и 3.x), может быть, попробуйте Erica Sadun's code:

#import <UIKit/UIKit.h> 
#import <UIKit/UIApplication.h> 
#include <dlfcn.h> 
#include <stdio.h> 

// Framework Paths 
#define SBSERVPATH "/System/Library/PrivateFrameworks/SpringBoardServices.framework/SpringBoardServices" 
#define UIKITPATH "/System/Library/Framework/UIKit.framework/UIKit" 

int main(int argc, char **argv) 
{ 
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; 

    // 
    // For testing try issuing the following: 
    //   ap y; sleep 5; ./ap n 
    // 

    if (argc < 2) 
    { 
     printf("Usage: %s (y | n)\n", argv[0]); 
     exit(-1); 
    } 

    // Argument used to switch airplane mode off or on 
    BOOL yorn = [[[NSString stringWithCString:argv[1]] 
        uppercaseString] hasPrefix:@"Y"]; 

    // Fetch the SpringBoard server port 
    mach_port_t *p; 
    void *uikit = dlopen(UIKITPATH, RTLD_LAZY); 
    int (*SBSSpringBoardServerPort)() = 
     dlsym(uikit, "SBSSpringBoardServerPort"); 
    p = SBSSpringBoardServerPort(); 
    dlclose(uikit); 

    // Link to SBSetAirplaneModeEnabled 
    void *sbserv = dlopen(SBSERVPATH, RTLD_LAZY); 
    int (*setAPMode)(mach_port_t* port, BOOL yorn) = 
     dlsym(sbserv, "SBSetAirplaneModeEnabled"); 
    setAPMode(p, yorn); 
    dlclose(sbserv); 

    [pool release]; 
} 
+0

Как это сделать в ios 6.0 и более поздних версиях –

0

Для имитации сбоя загрузки в программное обеспечение, просто закрыть соединение преждевременно когда установлен флаг отладки.

Я предпочитаю тянуть кабель от точки доступа Wi-Fi.

ДОБАВЛЕНО:

Если точка доступа Wi-Fi имеет локально доступный администратор веб-страницы, и вы являетесь администратором, вы можете быть в состоянии выяснить, HTTP (S) последовательности для доступа точки доступа WAN страницу конфигурации и отключить/снова включить WAN. Вы можете сделать все это в программном обеспечении.