See Part 0 for a brief introduction to this series and Bluetooth LE plus our past tutorial series on classic Bluetooth for communicating between Android devices, and between an Android device and an Arduino board with external Bluetooth transceiver.
Note – Bluetooth LE was introduced in the Bluetooth 4.0 specification. As of this writing, the latest version of the specification is 4.2. Bluetooth LE introduced capabilities to support very low power, battery operated devices that are designed to operate for weeks to months on a single battery or battery charge
Does Your Device Support Bluetooth LE?
To find out if your smart phone or tablet can work with Bluetooth LE: Go to the Google Play store and install the free app “BLE Checker” on your Android device. The app is simple – it tells you whether your device supports Bluetooth LE or not and that is all it does.
Devices that support Bluetooth LE will support BLE connections between compatible devices. However, this app does not tell you if your device supports a special BLE feature called “advertisements”. You can use Bluetooth LE without the “advertisements” feature but you will not be able to use all BLE features.
Does Your Device Support Advertisements?
In BLE, devices advertise their availability and what services they can provide (“I’m a thermometer and I give temperatures”, “I’m an altimeter and I give altitudes”). This is known as a Bluetooth LE “advertisement”. Until recently, most Android phones do not have support for the advertisement feature.
To check if your device has advertising support, install nRF Connect, from Nordic Semiconductors. Run the app and select the “ADVERTISER” tab at top of screen. If your phone is like my phone, you’ll see a screen like this:
My Nexus 5 does not support the “advertising” feature of BLE. My understanding is BLE advertisements are support on the Nexus 5x, the 6-series phones and presumably the new Pixel phones.
What are BLE Advertisements?
A BLE advertisement is a periodic brief data broadcast from the BLE devices, informing other devices that may be “scanning” their environment, about the services the device can provide.
“Services” are defined using a “globally unique” 128-bit identifier called a “University Unique Identifier” or UUID. We put “globally unique” in quotes because while some of the 128-bit numbers are indeed unique, many others are generated by a “UUID” generator algorithm. Because 128-bits represents an enormously large number, there is a high probability that a generated UUID is unique – or mostly unique! But there is no guarantee.
Some standard services have pre-defined identifiers. Because some of these are predefined, there is an additional UUID format for them that is only 16-bits or 32-bits in length.