私はReachabilityを自分のアプリケーションにインポートしましたが、あなたのためにハウツーの質問がいくつかあります。私のアプリケーションと他のツールをまず説明しましょう。到達可能性ヘルプ - WiFi検出
このアプリケーションは、同じ時間に2つのものと、アドホックネットワークと、3Gを通じてインターネットと通信します。注:アドホックネットワークはインターネットに接続されていません。これは完全に機能します。既に実装されており、すばらしくテストされています。
これは、Reachabilityを実装して2つのことを検出したいと考えています。
1)ユーザーはWi-Fiアドホックネットワークに接続していますか? (可能であれば、可能であれば、WXYZの接頭辞を持つWifiアドホックネットワークに接続されているかどうかを検出することです。たとえば、LinksysとWXYZ-Testing_Platformという2つのネットワークがリストされている場合、それがWXYZに接続されているかどうか)。
2)ユーザーは3G(または2Gなど)を通じてインターネットに接続し、Googleのサーバーにアクセスできますか?事前に
おかげ
EDIT FUTURE LOOKERSのための答えを含める:1の場合
)は、私のコードは次のようになります。
.h
#import <SystemConfiguration/CaptiveNetwork.h> //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をインポートし、サーバーに接続するたびにこのメソッドを使用するようにしました。注:サーバ情報
-(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];
}
}
私はこれを今見ていきます、ありがとう! – Baub