Msom CellularHelper.getOperatorName() returns empty string

DeviceOS 6.3.2
msom m404

publishVitals sends a cell status event to the cloud that includes an "operator" field. Mine currently shows "T-Mobile". Looking through the docs, I found CellularHelper.getOperatorName() that returns a string. Docs say that this doesn't work for LTE Cat M1 and I can confirm this. I get an empty string.

How does deviceOS determine the operator name? Any pointers would be appreciated.

The cloud looks up the MCC-MNC (mobile country code - mobile network code) in a database. There is no API available for this.

This library can be used on-device to store the database, but it's fairly large.

So you're saying my msom device does web queries to generate some of the vitals report field values?

No, the device vitals sends the numeric mcc and mnc to the cloud (they're each 3-digit numbers), and the console converts them to names when displayed.

ah, so the particle cloud actually creates the event data I'm seeing in the console under spark/device/diagnostics/update.

Correct

what about the signal quality stats? How much of this does deviceOS reveal on the msom side?

just found getExtendedQual, let me play with this and I'll report back.

Strength and quality are in the CellularSignal class.

getExtendedQual returns all 99s for my msom. Looking at CellularSignal class now.

CellularSignal gives me what I need. Thanks for your speedy help, much appreciated.

{
"technology": "8",
"strengthPercent": 50.0,
"strengthValue": -95.0,
"qualityPercent": 50.0,
"qualityValue": -10.0,
"lastUpdate": 12502
}

1 Like