- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要获取当前连接网络的 ssid。我需要它的原因是让我的应用程序能够在连接到特定网络时执行某些功能。现在我似乎无法弄清楚如何获得 ssid?我已经在线阅读并实现了以下内容。
-> 允许的用户位置
-> 登录 Apple 开发帐户并启用 Wifi 访问。
我正在使用的功能是
func locationManager(_ manager: CLLocationManager, didChangeAuthorization status: CLAuthorizationStatus) {
if status == .authorizedAlways || status == .authorizedAlways {
NEHotspotNetwork.fetchCurrent { hotspotNetwork in
if let ssid = hotspotNetwork?.ssid {
print("SSID is \(ssid)")
}
}
}
}
但它给出了以下错误
NEHotspotNetwork nehelper sent invalid result code [5] for Wi-Fi information request
最佳答案
我已经整理了获取当前连接的Wifi的SSID的方法。以下是在编写代码之前要遵循的先决条件。
-> 您必须拥有付费开发者帐户。
-> 你必须有一个物理设备
-> 您必须启用 Wifi 授权
-> 允许来自用户的位置使用访问
-> 在 com.apple.developer.networking.wifi-info
中添加 info.plist
键
然后在您的类(class)中使用此代码来获取 SSID。
import UIKit
import SystemConfiguration.CaptiveNetwork
import CoreLocation
class ViewController: UIViewController, CLLocationManagerDelegate {
var locationManager = CLLocationManager()
var currentNetworkInfos: Array<NetworkInfo>? {
get {
return SSID.fetchNetworkInfo()
}
}
let ssidLabel:UILabel = {
let lbl = UILabel()
lbl.translatesAutoresizingMaskIntoConstraints = false
return lbl
}()
let bssidLabel:UILabel = {
let lbl = UILabel()
lbl.translatesAutoresizingMaskIntoConstraints = false
return lbl
}()
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .yellow
view.addSubview(ssidLabel)
view.addSubview(bssidLabel)
NSLayoutConstraint.activate([
ssidLabel.centerXAnchor.constraint(equalTo: view.centerXAnchor),
ssidLabel.centerYAnchor.constraint(equalTo: view.centerYAnchor),
bssidLabel.centerXAnchor.constraint(equalTo: view.centerXAnchor, constant: 0),
bssidLabel.centerYAnchor.constraint(equalTo: view.centerYAnchor, constant: 20),
])
if #available(iOS 13.0, *) {
let status = CLLocationManager.authorizationStatus()
if status == .authorizedWhenInUse {
updateWiFi()
} else {
locationManager.delegate = self
locationManager.requestWhenInUseAuthorization()
}
} else {
updateWiFi()
}
}
func updateWiFi() {
print("SSID: \(currentNetworkInfos?.first?.ssid ?? "")")
if let ssid = currentNetworkInfos?.first?.ssid {
ssidLabel.text = "SSID: \(ssid)"
}
if let bssid = currentNetworkInfos?.first?.bssid {
bssidLabel.text = "BSSID: \(bssid)"
}
}
func locationManager(_ manager: CLLocationManager, didChangeAuthorization status: CLAuthorizationStatus) {
if status == .authorizedWhenInUse {
updateWiFi()
}
}
}
public class SSID {
class func fetchNetworkInfo() -> [NetworkInfo]? {
if let interfaces: NSArray = CNCopySupportedInterfaces() {
var networkInfos = [NetworkInfo]()
for interface in interfaces {
let interfaceName = interface as! String
var networkInfo = NetworkInfo(interface: interfaceName,
success: false,
ssid: nil,
bssid: nil)
if let dict = CNCopyCurrentNetworkInfo(interfaceName as CFString) as NSDictionary? {
networkInfo.success = true
networkInfo.ssid = dict[kCNNetworkInfoKeySSID as String] as? String
networkInfo.bssid = dict[kCNNetworkInfoKeyBSSID as String] as? String
}
networkInfos.append(networkInfo)
}
return networkInfos
}
return nil
}
}
struct NetworkInfo {
var interface: String
var success: Bool = false
var ssid: String?
var bssid: String?
}
关于swift5 - 如何快速获取当前连接的 Wifi 网络的 SSID | iOS 14?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64676100/
我需要在 android 上检查当前连接的 wifi SSID。我分别使用 Oreo 8.1.0 和 Oreo 8.0 检查了诺基亚 6 和 OnePlus 5。其他具有不同操作系统版本的手机可以正常
我正在一所大学建立无线网络,在那里我们拥有广泛的用户类型,例如学生(有些是毕业类(class),有些是 PG、博士生和其他人);支持人员、教职员工、常驻员工(及其家人)。 我必须在设计无线网络时牢记所
我想通过android应用程序测试wifi连接,检查输入的wifi ssid和密码是否正确。如何检查给定的 ssid 和密码是否正确? 最佳答案 这是我们在应用程序中所做的: 我们确保 wifi 已启
我正在尝试在后台获取 wifi ssid。 虽然它在前台,但效果很好。 但是当它进入后台时,在我的前台服务中,它返回。 当然是获得Location权限的。 是否可以在该服务中获取 ssid?
我需要在android中获取连接的wifi的SSID。当wifi网络改变时我需要获取SSID。 我搜索了很多关于这个的东西,但我没有得到正确的答案。 我了解到,此任务需要一个广播接收器。但我不知道如何
我正在尝试显示当前的 SSID(并最终捕获它以便日后使用) 到目前为止,我已经能够编译以下代码 - 但我无法显示它,并且每次运行它时应用程序强制关闭。我知道我忽略了一些简单的事情。任何帮助是极大的赞赏
借助这个Connectivity Plugin ,我可以使用以下代码获取连接状态,即移动网络、wifi 或无: import 'dart:async'; import 'package:flutter
我们正在开发无线 n/w 配置 UI,需要检查 SSID 是否有效?字符集有限制吗?长度 ?还有什么.. 最佳答案 802.11-2007 规范 (http://standards.ieee.org/
我的代码遇到了一个奇怪的问题,我无法弄清楚,尽管我确信它一定很简单。我的代码中有一个 if 语句,它将当前连接的网络名称与字符串进行比较。我遇到的问题是,即使 SSID 与字符串匹配,它也不会执行 i
我认为我遇到了权限问题,无法从连接获取 SSID。 我尝试过这种方法: WifiManager wifiManager = (WifiManager)getApplicationContext().g
我想要一个应用程序在使用 Toast 消息连接到 wifi 时显示 WIFI SSID,并且我也希望这种情况在终止状态下发生,我该怎么做。谢谢!提前回复主要 Activity public class
我已经使用 WifiManager 扫描可用的 wifi, mainWifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
问题如下 - 大学校园范围内的 wifi 连接只有一个 SSID,比如说“campus-wifi”。用户在校园内自由漫游,接入点之间通常会发生切换。我的问题是,在网络堆栈的任何层是否有任何信息允许客户
如果设备能够看到特定的网络/SSID,我需要找到一种方法让我的应用程序做出不同的 react 。我已将 SSID 嵌入到我的应用程序中,但我找不到查看可用网络和比较其 SSID 的方法。 感谢您的帮助
当我想验证 Android 设备是否已连接到特定 Wi-Fi(由 SSID 标识)并且同时有一个 Activity 的移动数据网络时,我遇到了一些奇怪的问题。也有可能我的问题与 Android 9 (
重复问题 - How to get my wifi hotspot ssid in my current android system很抱歉重复这个问题,但它仍然没有答案。我的手机处于网络共享模式,所
我正在尝试按照 the documentation 在我的 android things raspberry pi 上设置 wifi . 我的 Ssid 名称中包含一个空格,让我们说“我的 ssid”
您好,我正在寻找一个简单的代码来读取 SSID,我找到了很多关于“SystemConfiguration/CaptiveNetwork.h”的信息但是我怎么用它,我不明白。对不起,我是一个新的 Obj
是否有可能在 iPhone 上使用 Monotouch 连接的 WIFI SSID? 我找到了检查 Wi-Fi 状态的可能性,但无法检查 SSID。 https://github.com/xamari
有多个网站生成二维码以连接到 Android 的特定 Wi-Fi 网络:例如http://www.barcode.com/qrcode.html?view=qrcode 我正在寻找 iPhone 的类
我是一名优秀的程序员,十分优秀!