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');