I would like to programmatically get the operator providing service to a Boron:
I was looking at this lib DiagnosticsHelperRK but it does not provide it, or I could not find it.
I was happy when I found a getOperatorName() in this lib CarrierLookupRK, but then I read the 2G/3G only note:
getOperatorName (2G/3G only)
Returns a string containing the operator name, for example AT&T or T-Mobile in the United States.
Log.info("operator name=%s", CellularHelper.getOperatorName().c_str());
So the question is:
Is there a way to get the operator?
Yes and no. All devices know the numeric identifiers for the operator, the MCC and MNC. Some cellular devices have the database that maps those to names in the cellular modem flash, but some do not.
You can get the MCC/MNC from the device vitals on the device, but to display the name you need the table. This is easy from a web-based user interface like the console. On device the database is just small enough to fit in a 128K user binary if your code isn’t too large. It should comfortably fit in a 256K binary (Device OS 3.1.0 and later on a Gen 3 device).
The CarrierLookupRK library is a Particle library with this database, and it’s how CloudDebug displays the operator name in the output.