Problem definition:
I've been trying to use BLE proximity profile
for Bluetooth LE on Android. Some of the devices like new generation Google Nexus tablet with 4.3 Android support BLE and can act as a central
device.
I read the Android official documentation of the Bluetooth LE but their doesn't seems any support for that. Is their any workaround to implement our own proximity profile?
Questions which talk about proximity profile on Android but are of no help
- Reading Bluetooth RSSI for BLE proximity profile in Android.
- How to use the profile of PROXIMITY PROFILE,IMMEDIATE ALERT SERVICE and Find Me Profile in android 4.3 BLE?
- BTLE (Bluetooth Low energy) development kit - must have proximity profile
Any help is appreciated. Thanks.
To elaborate on shubhams's answer:
Since Android does not (yet) support advertising no other BLE device is able to initiate a connection to an Android device. As of now the Android device must initiate the connection.
June 2014:
Thanks everyone for the answers. Just to update, as of June 2014, BLE Peripheral mode is offered in the Android L Developer preview. So now Android devices can act both in peripheral and central role. Hope to see it in the
Android L
official release. Quoting from their blog New in Android: L Developer Preview and Google Play Services 5.0:Update 16th October 2014:
Its out now! Checkout Android 5.0 wireless changes page.
Update 8th December 2014:
The bad new is that BLE Peripheral mode will only work on the newer Android devices (as per the date), viz Nexus 6 and Nexus 9. It won't work on Nexus 4/ Nexus 5/nexus 7/ nexus 10 even if you update it to Android 5.0. You can read the comment by one of the Android Project manager on BLE advertise mode not working ticket. He says:
Thanks to Rob Anderson for informing.
Unfortunately, the android can only act as central not peripheral. So custom profiling is not possible at this point of time. Rather you can use the profile which are being provided by gatt.
For example: Temperature Monitor profile. Instead you can make the custom service and characteristics on iPhone and make it work as beacon.
Also if you are using hardware device of Estimote and other companies, you can reply back the data from android device i.e Services and characteristics have the properties such as Read, Write and Notify. But when you are making iPhone as Beacon, then you won't be able to receive the value from android device.