你能否将iOS设备的WiFi设置传递给ExternalAccessory对象?

我听说iOS 5引入了iOS设备可以通过ExternalAccessory框架与对接附件共享WiFiconfiguration的function。 麻烦的是我无法在SDK文档中find有关实现这种types的scheme的具体细节。

从我的研究中,我已经开始怀疑它是通过“iPhoneconfiguration实用程序”来实现的,但是这似乎仍然是一种在设备上实施的混乱方法。

任何人有任何想法?

一旦wifi设置数据可用,应该很容易打包并通过ExternalAccessory框架发送到设备,在那里我将build立相应的协议支持。

谢谢

我怀疑苹果是否会允许普通开发者访问诸如wifi连接设置等私有数据。 也许值得信赖的第三方配件供应商是的,但你可能不会。

Wifi设置是私人的,包含密码。 平均(非电量)用户使用或多或less的相同/相似的密码,包括他们的Wifinetworking。 如果一个应用程序可以很容易地读取它可能被严重利用。

同样的方式,你不能得到苹果的ID更不用说密码。

是! 你当然可以。 但是,要使用HomeKit (您需要的库),您首先需要成为经过authentication的MFi (Made for iDevice-iPhone-iPod-iPad)开发人员。 这使您可以允许用户查看所有可用的wifinetworking,并select链接设备。

Withings与他们的灵气睡眠援助的一个例子。 从登机体验看截图:

在这里输入图像说明

然后,用户可以select与新设备安全地共享家庭WiFi信息。

在这里输入图像说明

你有没有看到这个: iPhone没有私人图书馆SSID

提示应用程序用户的安全networking密码出了问题吗?

你至less可以得到一个不安全的networking的SSID,并通过一个getter把它传递给你的附件:

#import <SystemConfiguration/CaptiveNetwork.h> @implementation DeviceWifiSSID //https://stackoverflow.com/a/5198968/614688 +(NSString *)deviceSSID { NSArray *ifs = (__bridge id)CNCopySupportedInterfaces(); id info = nil; for (NSString *ifnam in ifs) { info = (__bridge id)CNCopyCurrentNetworkInfo((__bridge CFStringRef)ifnam); if ([info objectForKey:@"SSID"] != nil) { return [info objectForKey:@"SSID"]; } } return nil; } @end