导入基金会 import SystemConfiguration
公共课程可达性{
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
//...
cell.tintColor = UIColor.orange
let bgview = UIView()
bgview.backgroundColor = UIColor.purple
cell.multipleSelectionBackgroundView = bgview
//...
}
}
我使用上面编写的代码检查我的应用程序的互联网连接,这只检查3G和WIFI连接。但我还需要检查4G连接。任何人都可以帮我找到解决方案。
答案 0 :(得分:4)
以下是Apple的Reachability,您需要将Reachability.h / .m下载并拖动到您的项目中。
然后import CoreTelephony
并尝试以下。
if let reachability = Reachability.forInternetConnection() {
reachability.startNotifier()
let status = reachability.currentReachabilityStatus()
if status == .init(0) {
// .NotReachable
print("Not Reachable")
}
else if status == .init(1) {
// .ReachableViaWiFi
print("Reachable Via WiFi")
}
else if status == .init(2) {
// .ReachableViaWWAN
let netInfo = CTTelephonyNetworkInfo()
if let cRAT = netInfo.currentRadioAccessTechnology {
switch cRAT {
case CTRadioAccessTechnologyGPRS,
CTRadioAccessTechnologyEdge,
CTRadioAccessTechnologyCDMA1x:
print("Reachable Via 2G")
case CTRadioAccessTechnologyWCDMA,
CTRadioAccessTechnologyHSDPA,
CTRadioAccessTechnologyHSUPA,
CTRadioAccessTechnologyCDMAEVDORev0,
CTRadioAccessTechnologyCDMAEVDORevA,
CTRadioAccessTechnologyCDMAEVDORevB,
CTRadioAccessTechnologyeHRPD:
print("Reachable Via 3G")
case CTRadioAccessTechnologyLTE:
print("Reachable Via 4G")
default:
fatalError("error")
}
}
}
}
答案 1 :(得分:0)
最新的可达性快速工作代码。
if let status = appReachablity?.currentReachabilityStatus {
var message = ""
if status == .notReachable {
// .NotReachable
message = "DOT##=> Not Reachable"
print(message)
}
else if status == .reachableViaWiFi {
// .ReachableViaWiFi
message = "DOT##=> Reachable Via WiFi"
print(message)
}
else if status == .reachableViaWWAN {
// .ReachableViaWWAN
let netInfo = CTTelephonyNetworkInfo()
if let cRAT = netInfo.currentRadioAccessTechnology {
switch cRAT {
case CTRadioAccessTechnologyGPRS,
CTRadioAccessTechnologyEdge,
CTRadioAccessTechnologyCDMA1x:
message = "DOT##=> Reachable Via 2G"
print(message)
case CTRadioAccessTechnologyWCDMA,
CTRadioAccessTechnologyHSDPA,
CTRadioAccessTechnologyHSUPA,
CTRadioAccessTechnologyCDMAEVDORev0,
CTRadioAccessTechnologyCDMAEVDORevA,
CTRadioAccessTechnologyCDMAEVDORevB,
CTRadioAccessTechnologyeHRPD:
message = "DOT##=> Reachable Via 3G"
print(message)
case CTRadioAccessTechnologyLTE:
message = "DOT##=> Reachable Via 4G"
print(message)
default:
fatalError("error")
}
}
}
Toast(text: message, duration: Delay.long).show()
}