Before we dive into Bluetooth programming for android devices I thought it would be a good idea to provide some information on how Bluetooth works. Bluetooth is a great option for communication between devices but as we will see it may not be appropriate in all situations. See my post on Bluetooth 5 new features to see what’s coming. Try this bluetooth adapter for you computer if it doesn’t have it built in. I’ve used it on Ubuntu with no issues or drivers needed.
Bluetooth is a wireless technology for communication between two devices. Much like WiFi, Bluetooth uses radio communication, even the same 2.4 GHz frequency. One difference is the amount of channels available. WiFi typically has about 14 channels that can be used and Bluetooth can range from 40 – 79 channels depending on its implementation.
Bluetooth Power Consumption
Bluetooth is great for small devices for multiple reasons. One of the main reasons is its low power consumption. This can range between 15 – 30mA during peak consumption depending on your implementation of Bluetooth, Smart vs. Classic. According to Elise Vogler of Our Everyday Life, WiFi uses up to 40 times the power of Bluetooth to transmit data using the same rate .
Why Not Use Bluetooth Everywhere?
There are a few reasons, one of them being distance. Bluetooth has been improving its transmission range but older implementations will only give you a range of approximately 30 feet. With the upcoming Bluetooth 5 however, you can reach distances of up to 300 meters ! Until then, it should probably be used for personal are networks (PAN) also known as piconets.
Another reason is it’s ad-hoc networking model. Many implementations, so far, have been many slaves connected to a single master device. A good example of this is wireless devices such as a keyboard and mouse paired with a single computer. This is also helps when syncing data is necessary because your master will hold the data that will sync to other devices automatically.