直到今天,我使用CaptiveNetwork接口显示当前连接的Wifi的名称.iOS 9 Prerelease参考已经说过,CaptiveNetwork方法现在被删除了,但它们仍然在开始时工作.
有了最新版本,Apple似乎已经阻止了这个电话(可能是出于隐私问题?).
有没有其他方法来获得当前Wifi的名称?
这就是我今天获得SSID的方式,但你现在只获得nil:
#import <SystemConfiguration/CaptiveNetwork.h>
NSString *wifiName = nil;
NSArray *interFaceNames = (__bridge_transfer id)CNCopySupportedInterfaces();
for (NSString *name in interFaceNames) {
NSDictionary *info = (__bridge_transfer id)CNCopyCurrentNetworkInfo((__bridge CFStringRef)name);
if (info[@"SSID"]) {
wifiName = info[@"SSID"];
}
}
Run Code Online (Sandbox Code Playgroud) 是否可以在不使用私有库的情况下获取iPhone上所有可用SSID 的列表?
我在没有私有库的情况下阅读iPhone获取SSID,这是关于获取有关当前网络的详细信息.
这个答案提到:
如果您越狱设备,您可以使用Apple80211私有框架查找可用的Wi-Fi网络及其信号强度.但这也意味着您的应用会被拒绝.
Apple拥有CaptiveNetwork API,但似乎没有一个解决方案来获取所有可用网络的列表.似乎只能通过使用Apple80211私有库或连接到所有这些库来实现.
我错过了什么,或者没有解决方案?
我听说iOS 5引入了一项功能,iOS设备可以通过ExternalAccessory框架与对接附件共享其wifi配置.问题是我在SDK文档中找不到有关实现此类方案的任何具体细节.
根据我的研究,我开始怀疑它是通过"iPhone配置实用程序"实现的,但这似乎仍然是在设备上实现的一种混乱方法.
有人有任何想法吗?
一旦wifi设置数据可用,就应该很容易将其打包并通过ExternalAccessory框架发送到设备,在那里我将相应地构建协议支持.
谢谢
有没有办法使用iPhone SDK获取WiFi信息?像信号强度,WiFi频道和SSID这样的东西是我正在寻找的主要内容.
只对Wifi信息感兴趣,而不是蜂窝信息.
我需要获取当前连接的Wi-Fi热点的名称,例如"BT OpenZone"
我被告知可以使用CaptiveNetwork特别是CNCopyCurrentNetworkInfo 来完成
我的代码到目前为止:
#import <SystemConfiguration/CaptiveNetwork.h>
...
// Get the dictionary containing the captive network infomation
CFDictionaryRef captiveNtwrkDict = CNCopyCurrentNetworkInfo(kCNNetworkInfoKeySSID);
// Get the count of the key value pairs to test if it has worked
int count = CFDictionaryGetCount(captiveNtwrkDict);
NSLog(@"Count of dict:%d",count);
Run Code Online (Sandbox Code Playgroud)
当代码在WiFi热点的设备上运行时,captiveNtwrkDict为零.
有没有人设法让它工作?我无法在CaptiveNetworks上找到很多文档或任何示例代码示例...任何帮助将不胜感激.
我想获得一个地区的所有WiFi网络及其SSID值.但问题是如何使所有WiFi网络的SSID可用,即使我没有连接到一个.
我正在寻找一种方法来获取iOS5的objective-c中当前连接的wlan网络的信息(至少名称).
我需要这个,因为我们正在开发一个在特定网络中不起作用的应用程序.在这个网络(在我们大学),我们需要连接到服务器的端口关闭.但是还有另一个网络可用,我们想告诉用户如果他连接到上述网络,他必须切换网络.
我甚至不知道从哪里开始.有没有人有想法或任何提示?
感谢致敬
我试图使用此代码获取SSID
import Foundation
import SystemConfiguration.CaptiveNetwork
public class SSID {
class func getSSID() -> String{
var currentSSID = ""
let interfaces = CNCopySupportedInterfaces()
if interfaces != nil {
let interfacesArray = interfaces.takeRetainedValue() as [String : AnyObject]
if interfacesArray.count > 0 {
let interfaceName = interfacesArray[0] as String
let unsafeInterfaceData = CNCopyCurrentNetworkInfo(interfaceName)
if unsafeInterfaceData != nil {
let interfaceData = unsafeInterfaceData.takeRetainedValue() as Dictionary!
currentSSID = interfaceData[kCNNetworkInfoKeySSID] as! String
let ssiddata = NSString(data:interfaceData[kCNNetworkInfoKeySSIDData]! as! NSData, encoding:NSUTF8StringEncoding) as! String
// ssid data from hex …Run Code Online (Sandbox Code Playgroud) Apple更改了有关iOS 13中WiFi的一些内容。如果要使用CNCopyCurrentNetworkInfo,则您的应用程序需要具有以下任一功能
资料来源:WWDC 19会议713
我正在使用NEHotspotConfiguration配置网络,但这样做后无法再获取当前的SSID。
以下代码在iOS 12上运行良好:
/// retrieve the current SSID from a connected Wifi network
private func retrieveCurrentSSID() -> String? {
let interfaces = CNCopySupportedInterfaces() as? [String]
let interface = interfaces?
.compactMap { [weak self] in self?.retrieveInterfaceInfo(from: $0) }
.first
return interface
}
/// Retrieve information about a specific network interface
private func retrieveInterfaceInfo(from interface: String) -> String? {
guard let interfaceInfo = CNCopyCurrentNetworkInfo(interface as CFString) as? [String: AnyObject],
let ssid = interfaceInfo[kCNNetworkInfoKeySSID as String] …Run Code Online (Sandbox Code Playgroud) 在iPhone SDK中,我没有看到SCDynamicStore在Mac OS X上使用相同的内容来获取无线网络当前连接的SSID名称不可用.
有没有办法获得iPhone当前连接的SSID名称?
我看到一些应用程序这样做(AT&T的简易Wi-Fi一个)但我无法在iPhone SDK文档中找到它是如何完成的.私有或取消发布的方法可以作为概念证明(虽然我知道可能不会进入AppStore).
ios ×8
iphone ×7
cocoa-touch ×3
objective-c ×3
swift ×3
wifi ×3
ssid ×2
bssid ×1
ios13 ×1
ios5 ×1
ios9 ×1
networking ×1
wlan ×1