21

キャリアネットワークの接続の種類を取得するにはどうすればよいですか?

  • Reachabilityクラス を使って接続がWIFIかWWANかを知ることができます
  • ネットワークフラグを取得できます

    到達可能性フラグのステータス:WR t ------ localWiFiStatusForFlags

  • を使用してWIFISSIDを取得できますCaptiveNetwork

サポートされているインターフェイス:(en0)

en0 => {  
    BSSID = "xx:xx:xx:xx:xx:xx";  
    SSID = MyWifiNetwork;  
    SSIDDATA = <x1x1x1x1 x1x1x1x1 x1>;  
}  

しかし、3G、EDGE、またはGPRS接続を区別することはできません。

iOSプライベートAPIも使用するアイデアはありますか?

ありがとう。

4

4 に答える 4

5

ここでは、特にプライベートAPIを使用しOLDたソリューションSoftwareUpdateServices.framework

Class NetworkMonitor = NSClassFromString(@"SUNetworkMonitor");
NSLog(@"TYPE: %d", [NetworkMonitor currentNetworkType]);

それは戻ります:

0:データなし
1:WIFI
2:GPRS / EDGE
3:3G

これがコミュニティに役立つことを願っています。

于 2012-06-20T12:48:22.763 に答える
-1

現在使用されているインターネット接続の種類 (Wifi、3G、Edge など) を認識する機能を必要とする iPhone アプリケーションに取り組んでいます。Apples Reachability サンプル コードを使用して確認する簡単な方法を見つけました。このオンラインに関する情報が不足しているようです。これが誰かの助けになれば幸いです。

最初に Reachability.m/.h をプロジェクトにコピーし、クラスに #include "Reachability.h" を含めます。

Reachability *reach = [[Reachability alloc]init];
if (reach.internetConnectionStatus == NotReachable) {
    NSLog(@"No Connection Found");
} else if (reach.internetConnectionStatus == ReachableViaCarrierDataNetwork) {
    NSLog(@"3G or Edge");
} else if (reach.internetConnectionStatus == ReachableViaWiFiNetwork) {
    NSLog(@"Wifi Connection");
}
[reach release];

このコードは、これを達成するための最良の方法ではないかもしれませんが、最も単純な方法のようです。

于 2012-06-15T11:22:14.857 に答える