Ich versuche zu überprüfen, ob WiFi Assist aktiviert ist. Ich habe ein Problem, wenn ich mit meinem Access Point verbunden bin, um Daten zu erhalten, und wenn ich eine schlechte Verbindung habe, werden meine Mobilfunkdaten verwendet und es interferiert mit meinem Access Point. Gibt es eine Möglichkeit zu überprüfen, ob diese Option aktiviert ist?iOS Überprüfen Sie, ob WiFi Assist aktiviert ist
Antwort
Ok, ich denke ich kann ein wenig helfen. Sie müssen check SCNetworkReachabilityFlags
, für was ich denke, wäre eine bestimmte Kombination von Flags. Ich habe keine Dokumentation gefunden, die unterstützt, welche Kombination von Flags anzeigen würde, dass Sie WI-FI und Cellular verwenden. Ich habe auch keine Dokumentation gefunden, mit der Sie diese Einstellung direkt überprüfen können.
Basierend auf früheren Erfahrungen hat Apple wahrscheinlich keine Möglichkeit, diese Einstellung direkt zu überprüfen.
Also ... Hier ist ein kleiner Code, um uns zu beginnen?
public enum InternetStatus {
case notReachable
case reachableViaWWAN
case reachableViaWiFi
case wifiAssist
}
Und eine Variable, die Sie in einer Erweiterung Ihrer Wahl definieren können. (Vielleicht URLSession
?)
static public var internetStatus: InternetStatus {
var zeroAddress = sockaddr_in()
zeroAddress.sin_len = UInt8(MemoryLayout<sockaddr_in>.size)
zeroAddress.sin_family = sa_family_t(AF_INET)
guard let defaultRouteReachability = withUnsafePointer(to: &zeroAddress, {
$0.withMemoryRebound(to: sockaddr.self, capacity: 1) {
SCNetworkReachabilityCreateWithAddress(nil, $0)
}
}) else {
return .notReachable
}
var flags: SCNetworkReachabilityFlags = []
if flags.contains(.connectionOnDemand) {
print("Connection On Demand")
}
if flags.contains(.connectionAutomatic) {
print("Connection Automatic")
}
if flags.contains(.connectionOnTraffic) {
print("Connection On Traffic")
}
if flags.contains(.connectionRequired) {
print("Connection Required")
}
if flags.contains(.interventionRequired) {
print("Intervention Required")
}
if flags.contains(.isDirect) {
print("isDirect")
}
if flags.contains(.isLocalAddress) {
print("Local Address")
}
if flags.contains(.isWWAN) {
print("WWAN")
}
if flags.contains(.reachable) {
print("Reachable")
}
if flags.contains(.transientConnection) {
print("Transient Connection")
}
if !SCNetworkReachabilityGetFlags(defaultRouteReachability, &flags) {
return .notReachable
}
if flags.contains(.reachable) == false {
// The target host is not reachable.
return .notReachable
}
else if flags.contains(.isWWAN) == true {
// WWAN connections are OK if the calling application is using the CFNetwork APIs.
return .reachableViaWWAN
}
else if flags.contains(.connectionRequired) == false {
// If the target host is reachable and no connection is required then we'll assume that you're on Wi-Fi...
return .reachableViaWiFi
}else if flags.contains(.connectionRequired) && flags.contains(.isWWAN) {
// Not sure here, maybe Wi-Fi assist is currently being utilized? Will need to test.
return .wifiAssist
}else if (flags.contains(.connectionOnDemand) == true || flags.contains(.connectionOnTraffic) == true) && flags.contains(.interventionRequired) == false {
// The connection is on-demand (or on-traffic) if the calling application is using the CFSocketStream or higher APIs and no [user] intervention is needed
return .reachableViaWiFi
}
else {
return .notReachable
}
}
Der Trick wird in einer Einstellung zu debuggen, wo Sie Wi-Fi wissen unterstützen aktiv ist und die Fahnen beobachten. Oder sei klüger als ich und weiß einfach, was sie sind. Ich werde diese Antwort aktualisieren, wenn jemand darauf hinweist, oder ich finde die richtige Kombination von Flags.
Danke Jon, das war hilfreich. Jemand in meinem Team war in der Lage, etwas damit zu arbeiten, indem er dies als Leitfaden benutzte. Ich hoffe, Apple bietet dazu eine offizielle Anleitung. In der Zwischenzeit, Radar-Problem eingereicht ... –
@NicholasHart Gut zu hören! Möchten Sie den Code posten, meinen Post bearbeiten oder mir die Änderungen senden, damit wir eine vollständige Antwort erstellen können? –
- 1. Überprüfen Sie, ob Push aktiviert oder Standort aktiviert ios sdk
- 2. Erkennen, ob Wifi eingeschaltet ist - iOS
- 3. Überprüfen Sie, ob die Standortdienste aktiviert sind.
- 4. überprüfen, ob Checkbox in PHP aktiviert ist
- 5. Überprüfen, ob Optionsfeld nicht aktiviert ist jQuery
- 6. überprüfen, ob UAC mit VB6 aktiviert ist
- 7. Überprüfen, ob BlackBerry gps aktiviert ist
- 8. Überprüfen, ob Oracle Resource Management aktiviert ist
- 9. Eclipse Content Assist aktiviert nicht
- 10. Wie überprüfen Sie, ob Hyper-V mit PowerShell aktiviert ist?
- 11. , wie Sie überprüfen, ob ein Element aktiviert ist
- 12. Überprüfen Sie, ob CredSSP mit Powershell remote aktiviert ist
- 13. Überprüfen Sie, ob das Kontrollkästchen aktiviert ist oder nicht - ASP.NET
- 14. Überprüfen Sie, ob Javascript aktiviert ist (Serverside) mit Rails
- 15. Überprüfen Sie, ob die Gesichtzeit auf dem Gerät aktiviert ist.
- 16. Überprüfen Sie, ob JNA in Cassandra aktiviert ist
- 17. Überprüfen Sie, ob Kontrollkästchen aktiviert ist mit der Funktion prop
- 18. Überprüfen Sie, ob Javascript aktiviert ist Server-Seite ASP.NET
- 19. So überprüfen Sie, ob eine DataGridViewCheckBoxCell aktiviert ist
- 20. So überprüfen Sie, ob der Android Lollipop-Energiesparmodus aktiviert ist
- 21. Überprüfen Sie, ob das ASPX-Kontrollkästchen mit Javascript aktiviert ist
- 22. Überprüfen Sie, ob Kontrollkästchen aktiviert ist MVC-Controller
- 23. Ionic wifi aktiviert/deaktiviert Erkennung
- 24. Überprüfen, ob der Benutzer die automatische Korrektur aktiviert hat iOS
- 25. So prüfen Sie, ob Android "Mobile Daten" aktiviert ist
- 26. Überprüfen Sie, ob TabBar in iOS-App sichtbar ist
- 27. Überprüfen Sie, ob Video-, Bild-Datei vorhanden ist iOS
- 28. Überprüfen, ob das Kontrollkästchen eine Klasse hat und aktiviert ist
- 29. überprüfen, ob Kontrollkästchen in GridView aktiviert sind
- 30. iOS Erreichbarkeit meldet kein WiFi, wenn WiFi aktiv ist
Sie möchten überprüfen, Wifi aktiviert ist oder nicht richtig? –
Nein, ich möchte prüfen, ob die Option unter Einstellungen -> Mobilfunk -> WiFi Assist aktiviert ist – Flipper