Open brustolin opened 4 weeks ago
Swift snippet
import Network
import CoreTelephony
func checkNetworkType() {
let monitor = NWPathMonitor()
let queue = DispatchQueue(label: "NetworkMonitor")
monitor.pathUpdateHandler = { path in
if path.status == .satisfied {
// Device is connected to the internet
if path.usesInterfaceType(.cellular) {
// Cellular connection
let networkInfo = CTTelephonyNetworkInfo()
if let carrierType = networkInfo.serviceCurrentRadioAccessTechnology?.values.first {
switch carrierType {
case CTRadioAccessTechnologyLTE:
print("Connected via 4G (LTE)")
case CTRadioAccessTechnologyNRNSA, CTRadioAccessTechnologyNR:
print("Connected via 5G")
default:
print("Other cellular network (3G, etc.)")
}
}
} else if path.usesInterfaceType(.wifi) {
print("Connected via WiFi")
}
} else {
print("No internet connection")
}
}
monitor.start(queue: queue)
}
It's also worth noting that we could replace the current SentryReachability
class with NWPathMonitor
, we need to investigate the effort.
Description
Sentry events currently show Connection Type, but only with values
wifi
,ethernet
,cellular
, ornull
. https://github.com/getsentry/sentry-java/blob/5b8a9a6b2d40e03d1e5d0a38237db370c0f6cfd0/sentry-android-core/src/main/java/io/sentry/android/core/internal/util/ConnectivityChecker.java#L195Extend the
connection_type
field to include cellular network technology (3G, 4G LTE, and 5G etc.).From https://github.com/getsentry/team-mobile/issues/150