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