I want to know how iBeacon works actually. I found the sample code of AirLocate, but couldn't figure out how it works. iBeacon is works on BLE, so it may be possible for do data communication with other BLE supported devices via bluetooth?
As it possible to make data transfer between iOS - android device via bluetooth using BLE or beacon?
iOS had already announced iBeacon technology, but didn't find out any technical specification document regarding this. I also want to know how it works on android?
Can some one please describe about this technology and is it possible to make data-communication via bluetooth between iOS-iOS device, and iOS-Android Device?
No, you cannot communicate between devices using iBeacons because an iBeacons are transmit only. Mobile devices, both iOS and Android can both hear iBeacons, but they cannot talk back.
iBeacons work by transmitting a 3-part identifier and a transmitter power reference value every second (or more often.) That's it. They do nothing more. SDKs in iOS and Android listen for these signals and report them to your app, but the rest is up to the app developer.
What you suggest may be possible with a custom Bluetooth LE beacon, but it would need to be significantly more complex than an iBeacon, and you would have to build your own.
Here are a couple of links to give you more info:
How iBeacons work on Android from Radius Networks
iBeacon overview by Dave Addey
Full disclosure: I work for Radius Networks.
Related
I'm making a project with ESP32 that involves communication with a mobile application. Currently I'm using BluetoothSerial(built on Classic) just for debugging, but I plan to make a dedicated mobile application to have all kinds of data related to the project, and I'll gather this data from the controller through duplex communication, maybe via a command-response interface.
What I want to know is what kind of Bluetooth would be preferable to communicate with an Android application? Things that I want to keep in consideration:
Auto-connection capabilities when in range.
OTA possibility.
Range.
Hardware Requirements (Like timers and such)
Data Security
Port capability to iOS.
I do not care about:
Battery Usage (If the practical difference is minimal)
Transmission Speeds (I'm just transmitting 2-3 kb numerical data once a second)
It doesn't make a huge difference as most of the things you listed above can be achieved via either method, so it comes down to your personal preference and your existing familiarity with the wireless technology. However, I would personally go for BLE because unlike classic Bluetooth, BLE is now a lot more mature in terms of applications and resources for both Android and iOS. You will end up finding a lot more documentation and source code when it comes to BLE when compared to classic Bluetooth. Futhermore, as Michael Kotzjan mentioned, classic Bluetooth is relatively new on iOS and has a few restrictions.
The links below can maybe give you a nudge in the right direction:-
Bluetooth classic vs BLE on Android
Android Bluetooth vs BLE
Bluetooth security and privacy on iOS
Classic Bluetooth, BLE or WiFi direct
I've got several pieces of Ibeacon signal sender from online sellers(all small business, no brand), they're quite cheap and small, and can support configuration by my IPad mini, which include the 'device name', 'Proximity UUID', 'Broadcasting interval' and etc. Now it even works in my android phone:
My question is: Is that possible to make these Ibeacon devices to detect other BLE4.0 devices around and send out the data? because as I understood, Ibeacon itself is a full BLE4.0 support device, seems like people removed some basic functions by some purpose.
My purpose is to embedded these ibeacon devices in my ARDUINO board, by connected their serial port, it works not only a Ibeacon sender, but also can detect other BLE4.0 devices around and send their advertising data to ARDUINO board to further process.
Radius Networks published a tutorial and howto on how to make a Raspberry Pi iBeacon transmitter also scan for other iBeacons and report their identifiers to the system to turn a lamp on and off. While this is on a different platform, it closely matches what you describe and probably has concepts helpful for an Arduino implementation.
Full disclosure: I am Chief Engineer at Radius Networks.
iBeacon is just a particular implementation of a BLE advertisement. Its purpose is simply to advertise the UUID, major and minor numbers.
As you say, these devices are built around BLE 4.0 chipsets and many do implement other BLE peripheral services for configuration. There is nothing stopping you from creating custom firmware for the device to communicate with something like an Arduino, but the ability to do it on any given piece of hardware will depend on what chip they are using and your ability to attach to the device to upload new firmware and access appropriate pins for communication with your Arduino using a serial port or SPI.
I'm creating an app in which a key piece is transferring data when two people press a button on the app on their respective devices and then press their phones together (Yes, Bump on Android does this. That isn't the point). I know I could use NFC on Android to get this done. However, I wouldn't be able to do this on iOS because iOS doesn't support NFC. Earlier today I read about and discovered iBeacon, which is apparently some Bluetooth 4.0 implementation that works with both iPhones and Android devices. I've read about retail use-cases of iBeacon, where stores could set up beacons and when users walk by or are close enough, it'll trigger an action. Is the use-case of mimicking NFC for my purposes to be able to do reach iPhone users plausible? Should I be using another solution? Is this not the purpose of iBeacon and it wouldn't work?
From my experience with iBeacon on Android, you can indeed use it to replace NFC, as there are 3 'ranges' (immediate, near and far). iBeacon is based off BLE (Bluetooth Low Energy) and very light on power consumption as the name would suggest.
If you are trying to trigger actions on devices in a certain vicinity, i'd say using iBeacon is the most plausable method.
Android doesn't natively support 'iBeacon' as Apple created it, but it is based off Blueooth 4.0, a library has been created to mimick the iOS implementation of iBeacon
Android iBeacon Library
One thing to note, is that when using iBeacons, you cannot transmit data. Only two numbers (a major, and minor) and a UUID used solely for identification purposes.
The main problem with using iBeacons for this is that iBeacons are transmit only devices designed only to alert phones to their presence. The technology cannot exchange data.
You could do something like you describe with low-level programming with Bluetooth LE technologies, but iBeacons alone cannot do the job.
I'm working on a BLE proximity sensing feature based on Android and need some information.
Currently I see there are no BLE beacons manufacturers for android. I found 2 so far for iPhone.
1) http://www.estimote.com
2) http://www.gimbal.com
Estimote claims that their devices are generic but mainly they are publicized for iBeacons. So I'm not sure whether I should order them for a feature on Android.
Secondly gimbal explicitly mentions that their devices won't be enabled for android for proximity sensing.
So if any of you know where can I order BLE beacons compatible with Android please let me know.
Another thing, for prototype testing I was wondering whether I could use a Android BLE capable tablet or smartphone as a beacon to emit BLE signals?
Till now the documentation for android only suggests how to detect a beacon, But I'm not sure whether an Android device can be used as a beacon.
Any insights?
There is a BLE Beacon manufacturer for Android: Radius Networks
You can detect any standard iBeacon on Android using our Android iBeacon Library.
You can try it out yourself with our free iBeacon Locate app, which is based on this library. My company also sells both software and hardware iBeacons that I guarantee work with Android. But again, any standard iBeacon will work, too. Don't take my word for it -- just download our free app and use it to see one of our iBeacons. (We even have a free virtual machine you can use!)
It is currently not possible to make an iBeacon out of a stock Android device because the Bluetooth LE APIs, introduced in Android 4.3, do not support the peripheral mode needed to transmit advertisements like an iBeacon.
EDIT: It is now possible to make rooted Android 4.4.3 devices transmit as an iBeacon. See here.
I tried simple BLE scan app on Android, but the callback for LeDevices always returned null for UUID[]. Also, finding based on know UUID didnot work.
To add to David's reply. I have tried Radius Networks SDK, pretty clean. I like it.
Also, Estimotes has released their Android SDK today(1/7), which is good. The sample App shows notification, Distance, Major-Minor. I tested with 3 Estimotes & also with iPhone's app (making the iPhone as iBeacon). It works well, give it a try.
Note that you have to modify the code
change the ESTIMOTE_PROXIMITY_UUID value to the UUID that you are watching for.
Hope it helps.
I have been searching for a while now and decided to post a question here to see if someone had already traveled down this specific road.
I am developing a bluetooth enabled device, using the Bluegiga BLE112 chip. They announce this chip to be easily used with iOS devices (and this was our main reason for choosing it)
The device will need to communicate with an App, that we need to be developed for iOS, Android, Windows Phone, and Blackberry. Due to this need, I've decided to use Rhomobile, as it seems to be the only one that supports developing BT apps for iOS without having to develop further plugins.
I only need to send small messages (like commands, small strings) and sometimes a bigger file to the device's internal memory.
On Rhomobile's BT documentation, they state that for iOS it is only possible to comunicate between iOS devices ( i'm thinking that they say this because of the MiFi limitations imposed by Apple, but that using Bluegigas chip are not a problem...)
My question is:
Since Bluegiga's documentation has examples of devices communicating with iOS using their chip, i should be able to develop using Rhomobile and not suffer from the limitation stated above. I wanted to be as sure as possible before making my company spend money ordering the chips and development board and what not..
Has anyone tried this, is my thinking missing something?
Thank you all for your time.
Daniel
Good Question, I think I can understand the reason for your confusion.
The main reason is many people/products/frameworks does not clearly mention if they are talking about Bluetooth Classic or Bluetooth Low Energy (BLE).
These are both 2 different things and even thougfh they are called "Bluetooth" one cannot talk to the other.
(Some devices can be both Classic and Bluetooth Low Energy, which allows it to connect to either types)
Ok now comming to your Question :
THE bluegiga dongle is BLE
The Rhomobile is refering to the Bluetooth Classic version of the API.
On iOS the BLE APIs are open to applications, but Classic is limited on iOS , one way for Apps to use Classic Bluetooth on iOS is via the Gamekit APIs but that is possible only when talking with iOS devices, so it wont connect to another Android or Win device that is also Classic.
Needless to say with BLE APIs you cannot connect to calssic anyways.
The bluegiga examples are BLE examples, and apple also has good documentation and examples / samples on how to use BLE so yes it is easy to build a device and app using BLE on iOS.
There is nothing special abut any particular chip yo ucan use any BLE chip - there are many vendors today.
BUT Android (and I guess Windows as well) does not yet have BLE APIs for applications to use :( (Bit I think is is comming soon :))
So I hope this clears things up a bit.