Быстрый способ выключить сетевое подключение для целей отладки? - PullRequest
1 голос
/ 29 января 2011

Есть ли прямой способ "брут-форс" отключить и снова включить сетевое соединение (сотовая связь и WIFI) на iphone?Я работаю над приложением, которое синхронизируется через Dropbox и хотел бы проверить и отладить мой код восстановления после потери соединений.

ОБНОВЛЕНИЕ: Я должен был быть более конкретным, я хочу отключить этоюго-западНапример, после запуска запроса в Dropbox я хочу смоделировать неудачную загрузку, выключив сеть.

Ответы [ 2 ]

0 голосов
/ 29 января 2011

Чтобы смоделировать неудачную загрузку в программном обеспечении, просто преждевременно закройте соединение в программном обеспечении, когда установлен какой-либо флаг отладки.

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

ДОБАВЛЕНО:

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

0 голосов
/ 29 января 2011

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

РЕДАКТИРОВАТЬ : чтобы включить режим полета с использованием iOS SDK (2.x и, возможно, 3.x), попробуйте код Эрики Садун :

#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];
}
...