isCellular property
bool
get
isCellular
True for cellular data interfaces: pdp_ip* on iOS; rmnet*, ccmni*,
radio* and vendor variants on Android; clat* for 464XLAT over cellular.
iOS cellular carries a /32, whose computed broadcast is the interface's
own address; Android cellular was observed on a /30, a point-to-point
subnet with no discovery targets on it (never assume /32 universally).
Either way, a UDP send to the derived broadcast goes out over mobile data
and reaches nothing — which is why isUsableLan excludes cellular.
Implementation
bool get isCellular =>
name.startsWith('pdp_ip') ||
name.startsWith('rmnet') ||
name.startsWith('ccmni') ||
name.startsWith('radio') ||
name.startsWith('clat');