Repository navigation
NetSpeed 1.23
It said 5G while the phone said LTE
The hotspot's network type was one step too generous. A phone on LTE was
labelled 5G, both in the menu bar and in the menu.
macOS has no documented way to ask a tethered phone what network it is on. The
class that carries the answer, CWTetherDevice, exists in CoreWLAN's symbol
table and appears in none of its eleven public headers — no class, no method,
and nothing anywhere that says what the numbers mean. They have to be worked
out by watching.
The earlier reading came from ControlCenter, which holds seven labels for the
enum — 1x, GPRS, EDGE, 3G, 4G, LTE, 5G — taken as 1 through 7. That put LTE
at 6 and 5G at 7, and it was wrong.
LTE actually arrives as 7. For it to land there, two cases ahead of the
labelled ones must carry no label at all: nothing reported, and something
unrecognised. LTE is 7 and 5G is 8.
| raw | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
|---|---|---|---|---|---|---|---|---|---|
| shown | — | — | 1x |
G |
E |
3G |
4G |
LTE |
5G |
What settled it was seeing both at once: the system's own Wi-Fi menu naming the
device LTE in the same moment the raw value read 7. Nothing inside the app
could have caught this — the live CoreWLAN object reports the same number as
the stored one, so the two sources agree with each other and neither explains
what the number means.
Two points are now confirmed by observation: 7 is LTE, and 0 and 1 mean nothing
was reported. The rest of the table follows from the same reasoning but has not
been seen. If your phone shows a type the menu bar disagrees with, that is worth
reporting.
Both unlabelled cases now leave the badge empty rather than printing a dash,
which states nothing and costs room on a row that has none to spare.
Universal build — Apple silicon and Intel in one image.
Gatekeeper will not open an unsigned app from the internet on the first try:
drag NetSpeed to Applications, then right-click it and choose Open.