iPhoneでネットワーク接続(セルラーおよびWIFI)をオフにして再びオンにする簡単な方法はありますか?Dropbox を介して同期するアプリケーションを開発しており、接続が失われた場合のエラー回復コードをテストおよびデバッグしたいと考えています。
更新: もう少し具体的に説明する必要がありました。sw でこれをオフにしたいと思います。たとえば、ドロップボックスへのリクエストを開始した後、ネットワークをオフにしてダウンロードの失敗をシミュレートしたいと考えています。
iPhoneでネットワーク接続(セルラーおよびWIFI)をオフにして再びオンにする簡単な方法はありますか?Dropbox を介して同期するアプリケーションを開発しており、接続が失われた場合のエラー回復コードをテストおよびデバッグしたいと考えています。
更新: もう少し具体的に説明する必要がありました。sw でこれをオフにしたいと思います。たとえば、ドロップボックスへのリクエストを開始した後、ネットワークをオフにしてダウンロードの失敗をシミュレートしたいと考えています。
設定を開き、機内モードをオンにして、すべてのネットワーク接続を無効にします。再度有効にするにはオフにします。
編集: iOS SDK (2.x およびおそらく 3.x) を使用して機内モードを有効にするには、Erica Sadun のコードを試してください:
#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];
}
ソフトウェアでダウンロードの失敗をシミュレートするには、デバッグ フラグが設定されているときにソフトウェアで接続を早期に閉じます。
私は、wifi アクセス ポイントからケーブルを引き抜くことを好みます。
追加した:
Wi-Fi アクセス ポイントにローカルでアクセス可能な管理 Web ページがあり、あなたが管理者である場合、HTTP(S) シーケンスを理解してアクセス ポイントの WAN 構成ページにアクセスし、WAN を無効/再度有効にすることができる場合があります。これらすべてをソフトウェアで行うことができます。