I'm trying to conserve space in the advertising packet, and would like to free up the space used by the 128 bit (16 byte) service item list, as this takes a minimum of 18 bytes, if you include the Length and Type bytes. But I need to broadcast a lot of manufacturer data, and 18 bytes is over half the available space in the advertising packet.
So as an experiment, I removed the service, from
static ble_uuid_t m_adv_uuids[] = {};//{{BLE_UUID_EBS_SERVICE, EBS_SERVICE_UUID_TYPE}}; /**< Universally unique service identifier. */
And checked using the Nordic nRFConnect app, and this seems to be a valid setup, because the service can be discovered when the app connects.
Is this a valid mode of operation ?
The only drawback I can see if that iOS will not scan in the background if a device does not advertise any services. But I could always just add the device information service, so that iOS has something to look for, as that would only take 4 bytes, as its a 16 bit service