iOS 替换已弃用的 CNCopyCurrentNetworkInfo(可用性 - iOS 4.1–14.0)
iOS Replacement for the Deprecated CNCopyCurrentNetworkInfo (Availability - iOS 4.1–14.0)
你好,我正在使用 cncopycurrentnetworkinfo 获取连接的数据 (ssid,bssid)
无线网络
但根据 link https://developer.apple.com/documentation/systemconfiguration/1614126-cncopycurrentnetworkinfo showing Deprecated 和 showing possible solution is using the method
fetchCurrentWithCompletionHandler:(https://developer.apple.com/documentation/networkextension/nehotspotnetwork/3666511-fetchcurrentwithcompletionhandle) 这是 HotspotHelper 的方法,我还通过电子邮件 networkextension@apple.com 询问 HotspotHelper 使用的权利 (com.apple.developer.networking.HotspotHelper) 但被拒绝了。
那么还有其他可能的解决方案吗?
Apple 似乎不希望任何任意应用程序拥有此信息,很可能是出于隐私原因。而且我假设您的应用程序不是热点助手。因此无法在较新的 iOS 版本上获取该数据。
您可以添加需要此信息的原因。如果是收集有关用户的信息,那么您就有了答案。如果没有,那么您可能会以不同的方式实现您的实际目标。
https://developer.apple.com/forums/thread/675211?answerId=664741022#664741022
我从苹果开发者论坛得到了答案
+fetchCurrentWithCompletionHandler: 不需要 Hotspot Helper 权限。不幸的是,这个事实没有正式记录(r. 74976266)。幸运的是,.
中的文档注释中有很多关于此方法的有用信息
这里是实现的例子。希望这对其他人有帮助
if (@available(iOS 14.0, *)) {
[NEHotspotNetwork fetchCurrentWithCompletionHandler:^(NEHotspotNetwork * _Nullable currentNetwork) {
NSString *strSSID = [currentNetwork SSID];
}];
} else {
NSArray *ifs = (__bridge_transfer NSArray *)CNCopySupportedInterfaces();
NSDictionary *info;
for (NSString *ifnam in ifs) {
info = (__bridge_transfer NSDictionary *)CNCopyCurrentNetworkInfo((__bridge CFStringRef)ifnam);
if (info && [info count]) {
NSString *strSSID = [info objectForKey:@"SSID"];
break;
}
}
}
你好,我正在使用 cncopycurrentnetworkinfo 获取连接的数据 (ssid,bssid) 无线网络 但根据 link https://developer.apple.com/documentation/systemconfiguration/1614126-cncopycurrentnetworkinfo showing Deprecated 和 showing possible solution is using the method fetchCurrentWithCompletionHandler:(https://developer.apple.com/documentation/networkextension/nehotspotnetwork/3666511-fetchcurrentwithcompletionhandle) 这是 HotspotHelper 的方法,我还通过电子邮件 networkextension@apple.com 询问 HotspotHelper 使用的权利 (com.apple.developer.networking.HotspotHelper) 但被拒绝了。
那么还有其他可能的解决方案吗?
Apple 似乎不希望任何任意应用程序拥有此信息,很可能是出于隐私原因。而且我假设您的应用程序不是热点助手。因此无法在较新的 iOS 版本上获取该数据。
您可以添加需要此信息的原因。如果是收集有关用户的信息,那么您就有了答案。如果没有,那么您可能会以不同的方式实现您的实际目标。
https://developer.apple.com/forums/thread/675211?answerId=664741022#664741022
我从苹果开发者论坛得到了答案
+fetchCurrentWithCompletionHandler: 不需要 Hotspot Helper 权限。不幸的是,这个事实没有正式记录(r. 74976266)。幸运的是,
这里是实现的例子。希望这对其他人有帮助
if (@available(iOS 14.0, *)) {
[NEHotspotNetwork fetchCurrentWithCompletionHandler:^(NEHotspotNetwork * _Nullable currentNetwork) {
NSString *strSSID = [currentNetwork SSID];
}];
} else {
NSArray *ifs = (__bridge_transfer NSArray *)CNCopySupportedInterfaces();
NSDictionary *info;
for (NSString *ifnam in ifs) {
info = (__bridge_transfer NSDictionary *)CNCopyCurrentNetworkInfo((__bridge CFStringRef)ifnam);
if (info && [info count]) {
NSString *strSSID = [info objectForKey:@"SSID"];
break;
}
}
}