Question: How can an iBeacon send data to backend or api
Question created on Sunday February 26, 2017
I have a graduation project that monitor people digital foot map in a store.
So I think I will use ibeacon technology to make it happen,
I dont want people install an app to send their foot experiments,
I want to get these data without any app that running on phone.
So I'm asking this,
Can an iBeacon send any data to backend/api own its own?
An iBeacon just tranmsits data; a UUID and two 16 bit numbers.
An app is required on the device to listen for the specific UUID(s) of the beacons it is interested in.
The beacon does not receive any data from the device at all.
Sunday February 26, 2017
On iOS, at least, an app can either act as an iBeacon transmitter, an iBeacon receiver, or both.
Either one requires that you install a custom app on the device. You can't do ANYTHING without a custom app on the device.
So the short answer to your question is a hard no.
You can set up an app to listen for beacons even when it's not running. If it detects a beacon the system will launch your app in the background. This is probably your best option. You create "beacon regions" and start listening for them.
When your app gets notified that a beacon is detected, you could ask for background time, then send info about the beacon (and the user's ID) to a server.
Alternatively, you could build a device that listens for iBeacons, and then uploads information about those beacons to a server. (You could use a Raspberry Pi, for example.) Then you could have the students' phones broadcast an iBeacon signal. The downside of this is that each of the students' phones would have to be running an app which was actively running in the background (or the foreground). That would drain the students' batteries fairly quickly.
It might be possible to set up a daemon on Android devices that either sends or receives iBeacon signals with minimal power consumption. Somebody with detailed knowledge of Android would have to answer that part of your question.