Why Your App Can’t Detect Real 5G: Hidden Pitfalls for Android & iOS Developers
Despite the rollout of 5G, mobile developers face hidden challenges: users see a 5G icon that may not reflect actual network mode, Android’s APIs inconsistently expose NR/NSA status, and iOS adds new constants, requiring careful handling to ensure app behavior aligns with true connectivity.
From Where It Comes
In 2021, three years after the commercial launch of 5G in 2019, the ecosystem has matured with Android 10/11, iPhone 12 and iOS 14. While 5G does not yet deliver the dramatic speed jump seen from 3G to 4G, the industry continues to chase lower latency and higher bandwidth for new use cases.
Current Situation 1: Seeing the 5G icon doesn’t guarantee real 5G
Users often assume that a 5G/5G+/NR icon means they are on a true 5G connection, but the display hides technical nuances such as NSA vs. SA modes and coverage limitations.
Is NR+NSA considered 5G? Should SA and NSA be distinguished?
Should the status be updated frequently when coverage is insufficient?
In China, operators adopt a “D+A” strategy for the 5G icon:
Use the “D” scheme in idle state (no data traffic).
Use the “A” scheme in connected state (active data traffic such as video streaming or background downloads).
The diagram below illustrates the D+A logic.
Current Situation 2: Android developers cannot directly obtain 5G_NSA status
Although Android 9 introduced TelephonyManager#NETWORK_TYPE_NR for NR, the enum only represents NR‑SA. For NR‑NSA the system reports LTE, and the classification has changed across Android releases, sometimes being removed entirely.
@@ -2802,7 +2802,11 @@
/** Current network is LTE_CA {@hide} */
@UnsupportedAppUsage
public static final int NETWORK_TYPE_LTE_CA = TelephonyProtoEnums.NETWORK_TYPE_LTE_CA; // = 19.
/** Current network is NR(New Radio) 5G. */
/**
* Current network is NR (New Radio) 5G.
* This will only be returned for 5G SA.
* For 5G NSA, the network type will be {@link #NETWORK_TYPE_LTE}.
*/Consequently, an app may see a 5G icon while its code cannot detect it, or it may receive contradictory classifications (SA, NSA, or UNKNOWN) depending on the device’s Android version and manufacturer customizations.
Current Situation 3: iOS 14’s support for 5G identifiers
Starting with iOS 14, Apple introduced two constants:
CORETELEPHONY_EXTERN NSString * const CTRadioAccessTechnologyNRNSA API_AVAILABLE(ios(14.0)) API_UNAVAILABLE(macos); CORETELEPHONY_EXTERN NSString * const CTRadioAccessTechnologyNR API_AVAILABLE(ios(14.0)) API_UNAVAILABLE(macos);
Using the Reachability library, developers can distinguish NSA and SA on iOS 14, though early 14.2 builds exhibited crashes due to missing symbols, which were resolved by iOS 14.3.
Impact and Solutions
User‑side 5G Trend
Data from Alipay’s network radar shows that SA network deployment accelerated in early 2021, reaching a 5‰ PV share, up from 1‰ a month earlier.
Recommendations
Ensure consistent user perception of network service; align app behavior with the actual 5G state to avoid “why is my feature not working on 5G?” issues.
Abstract the complexity of underlying network frameworks; provide SDK wrappers that hide divergent system APIs and reflection hacks.
Continuously monitor the evolving 5G ecosystem, including new access architectures and application scenarios, to stay prepared for future demands.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
