0

StackOverflow の別の投稿から取得して変更した私のコード (エラーなしでコンパイル):

NSError *error; 
NSArray *ifs = (NSArray *)CFBridgingRelease(CNCopySupportedInterfaces());
NSLog(@"%s: Supported interfaces: %@", __func__, ifs);
id info = nil;

for (NSString *ifnam in ifs)
{
    info = (NSDictionary *)CFBridgingRelease(CNCopyCurrentNetworkInfo((__bridge CFStringRef)ifnam));
    NSLog(@"%s: %@ => %@", __func__, ifnam, info);

    if (info && [info count])
    {
        break;
    }
}
4

1 に答える 1

1

iOS 5.01でコードを試しました。私にはうまくいきません。引き継ぎが行われていることに気付きます。説明します。同じ ssid を持つ 2 つのアクセス ポイントは、実際には iPhone から ping できる 2 つのルーターです。シナリオは次のとおりです。

  1. 最初はルーター A に接続しています。ルーター A の IP に対して ping を実行できます。コードには A の BSSID が表示されます。
  2. ルーター B の範囲内に移動し、ルーター A の範囲外に移動します。ルーター A には ping を実行できなくなりましたが、ルーター B には ping を実行できるようになりました。コードは A の BSSID を表示し続けます。

ハンドオーバーが行われましたが、CNCopyCurrentNetworkInfo は新しいデータを返しません。なぜそれが起こるのかについての可能な答えは次のとおりです: https://stackoverflow.com/a/11304701

于 2012-08-24T09:21:50.380 に答える