0

こんにちは私はいくつかの投稿を読み、Appleの「到達可能性」サンプルを使用して、現在のデバイスがWi-Fiまたはセルラーで実行されているかどうかを確認し、接続を確立できるかどうかを判断できることを確認しました。ただし、アプリにはさまざまなクラスのWebビューとHTTP呼び出しがたくさんあるため、接続を開始するすべてのメソッドでチェックを呼び出さなければならないのではないかと心配しています。ネットワークのステータスを確認し、携帯電話のすべてのトラフィックを禁止する方法はありますか?どうもありがとう。

4

1 に答える 1

0

NSNotification を介してブロードキャストされる ReachableViaWiFi ネットワーク ステータスを探しています。次のようにコードでセットアップできます。

@property (nonatomic, assign) NetworkStatus currentNetStatus;

...

- (void) startListeningForWifi{
            Reachability* hostReach = [Reachability reachabilityWithHostName:@"hostName"];
            [hostReach startNotifier];

            // reachability set up
            // Observe the kNetworkReachabilityChangedNotification. When that notification is posted, the
            // method "reachabilityChanged" will be called. 
            [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(reachabilityChanged:) name: kReachabilityChangedNotification object: nil];
}

- (void)reachabilityChanged: (NSNotification* )note{
    Reachability *curReach = [note object];
    self.currentNetStatus = [curReach currentReachabilityStatus];
}

currentNetStatusそうすれば、ネットワーク通話を行う前に簡単に確認できます。それが等しくない場合ReachableViaWiFiは、wifi を使用していません。

于 2012-11-13T04:32:15.473 に答える