4

ユーザーが接続しているワイヤレス ネットワークの名前を返すメソッドを実行することは可能ですか? アプリ内で、ユーザーが接続しているワイヤレス ネットワークの名前を返せるようにしたいと考えています。

4

3 に答える 3

8

これは私にとって完璧に機能しました:

#import <SystemConfiguration/CaptiveNetwork.h>

CFArrayRef myArray = CNCopySupportedInterfaces();
CFDictionaryRef myDict = CNCopyCurrentNetworkInfo(CFArrayGetValueAtIndex(myArray, 0));
//    NSLog(@"SSID: %@",CFDictionaryGetValue(myDict, kCNNetworkInfoKeySSID));
NSString *networkName = CFDictionaryGetValue(myDict, kCNNetworkInfoKeySSID);

if ([networkName isEqualToString:@"Hot Dog"])
{
    self.storeNameController = [[StoreDataController alloc] init];
    [self.storeNameController addStoreNamesObject];
}
else {
    UIAlertView *alert = [[UIAlertView alloc]initWithTitle: @"Connection Failed"
                                                   message: @"Please connect to the Hot Dog network and try again"
                                                  delegate: self
                                         cancelButtonTitle: @"Close"
                                         otherButtonTitles: nil];

    [alert show];
于 2012-11-02T14:44:37.820 に答える
6

Developer.appleから 、 CNCopyCurrentNetworkInfoを使用できます

指定されたネットワーク インターフェイスの現在のネットワーク情報を返します。

CFDictionaryRef CNCopyCurrentNetworkInfo (
   CFStringRef interfaceName
);

インターフェイスの現在のネットワーク情報を含む辞書が含まれています。所有権は作成ルールに従います。

: iOS 4.1 以降で使用できます。

例:

この例は実際のデバイスでは問題なく動作しますが、シミュレーターではクラッシュする可能性があります。

SystemConfiguration.frameworkを追加

CaptiveNetwork以下と同じインポートヘッダー

#import <SystemConfiguration/CaptiveNetwork.h>

次に、以下のコードを記述します。

    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"];
    NSLog(@"network name: %@",ssid);

また

Bonjourを使用して、アプリケーションはローカル ネットワーク上で自身をアドバタイズし、ネットワーク上のこのアプリケーションの他のインスタンスのリストを表示します。

サンプルWitapアプリケーションを見る

于 2012-11-02T13:00:32.123 に答える