Can I detect the iBeacon with out the user install any app ? on iOS or on Android .
For example:
A aribetry user enter the store , he dont have the store app.
Can I detect that the user entered the store ? can I do it on iOS or Android ?
I am following the below article
http://developer.radiusnetworks.com/2013/10/21/corebluetooth-doesnt-let-you-see-ibeacons.html
No, you cannot use iBeacons to detect that a user has entered a store on either iOS or Android, unless an app is installed first. I am the author of the article you reference.
The reason iBeacons cannot do this without an app is because they are transmit only devices. You need an app to hear the iBeacon and then use the phone's internet or bluetooth connection to tell computers associated with your store about the user's presence.
What you want is possible with WiFi sniffing sensors that passively detect user phones. These are good for detecting statistics about customer presence. See the MessageRadius description for an overview of how this works.
With iOS this is not possible.
A user may have received & installed a Pass for Passbook that will trigger a lock-screen alert when it is within proximity to a specific iBeacon - but no information will be sent to any web-service about this triggering event. You cannot track a user's location via Passbook.
If the user installs your App then this can send information to your web-service when it detects an iBeacon - but you need to get the user to install the App first ..
I think you are a little confused about how iBeacon works - A device (beacon) needs to actively transmit an id which can be detected by another device that is listening for the specific UUID.
While an iOS device (or an Android device) can act as an iBeacon it requires an app running on the device to do so and this would not be the typical use case in a retail environment.
Rather, a store's app on the device would register interest in a particular UUID (the UUID assigned to that store's iBeacons). Entering range of an iBeacon (when you enter a store) would notify the app, which could then take the required action.
The Radius Networks article you linked to essentially describes a "sniffer" app that can scan for all iBeacon UUIDs rather than a specific one. Neither the iOS CoreLocation or CoreBluetooth libraries do not allow you to do this.
You could write an app on iOS that listens for 'well-known' UUIDs (such as Estimote, Radius Networks etc) - there are several example apps available on the App Store that do this, but the information transmitted is simply a UUID and two numbers, so it would be of limited information to a generic app as you need knowledge of how the store is assigning this information.
Related
Consider an application that has for example application called "Covid detection". This application has a flag whether or not the owner of the device is covid infected at the moment. The user can change this. Now, let's assume a group of people having this same application.
My question is - is it possible for all devices to perform a scan every once a while to detect whether somebody in their close range was covid infected and send them a warning?
In my mind, the best possible scenario is to simply send a data over bluetooth everytime a bluetooth scan is performed, whitelisting the application as an auto-pair somehow (don't know if it's possible) and sharing user data (covid sick flag). However it seems like this is not possible, and instead the other way would be to perform the scan, save all MAC addresses of nearby devices and once internet connection is available, check the MAC addresses server-side for covid possibility.
Is this possible? Are there other ways?
I'm trying to make a app for report the human interaction because the virus, I just want to know if it's possible for follow a way, I know that exist google nearby, but that requires that both devices has the same app installed and it's the same with the bluetooth or ble, so what others tools could be usefull for make my app? Thanks.
It depends on your approach but ble has the functionality to scan for discover able advertisement from other devices.
This means you can see and store another devices address(ble) to a list / database. The beauty of this is ble only works well within a short range distance though you can filter by distance crudely by the RSSI. The RSSI is received upon scanning it is the received power from another device.
So for a contract tracing app you will need to develop a system which advertises a ble packet and along with the app scan for ble packets.
Then if you find via your scan another device, you add it to your database.
Next you need to check your database "for the virus" this means looking up a backend system where you store the ble addresses of people with the virus. Then the user checks the database with their list of addresses, if there is a match of addresses, then you have come into contact with the virus and should get treatment / self isolate. Just what ever your geographical location laws are.
So simply put you need:
App for both phone
Back end database
Database on each phone of addresses found
Ability to send out address via an advert(beacon)
Scanning of beacons
Checking database(backend for virus)
Uploading to database(Stay you have it, don't have it or are cured)
Hope this helps.
I'm actually working for a startup I'm building with two other founders. On the side I would like to develop a quick prototype to be able to deepdive into a subject I can use on my project : beacons.
Here is what I want to achieve : I want to be able to use a device as an emitter (using bluetooth, BLE, or wifi) and the other one to be able to know when it enters the first one range. I need that to be able to do indoor localization (just a check in system, not to know exactly where people are in that specific location).
I'm used to code mobile application with Ionic and I'm more a Javascript developer. I saw that there is already something which fit to my needs : Dazting which transform every device mobile as "a beacon" with either bluetooth or Wifi. Problem, I want to do it on my own but to be honest I don't really now how they manage to do that with Wifi. I know that there are some libraries to emit with BLE but what about bluetooth ?
Does it mean I'll have to code it with native code ?
This is what I want to achieve :
Coding an hybrid app (will loose less time and one app for every
platform)
Transforming the mobile device into an emitter : with bluetooth or
wifi
Be able to know the distance between a device which will emit and a
one that will receive the signal
I don't want to go with beacons : I'm not going to use macro-location and buying beacons for my project at the start is not something we would like to do.
Any ideas or suggestions on how did Datzing manage to reach that goal ?
Thanks in advance.
Datzing relies on emission of Bluetooth Classic, Bluetooth LE and WiFi packets from a mobile device that is made discoverable, either programmatically or through manual selection in settings. The unique MAC address or SSID of the device can then be used to tie the detected transmission to a registered "Beacon" on the Datzing system. Basically it just registers the unique identifier associated with a Bluetooth or WiFi transmission with the Datzing servers so they can have meaning.
Using this technology to transmit on an iOS device is severely limited due to operating system restrictions. Users essentially have to manually go to settings screens to start the emissions. Android devices are much more flexible if you have a native app granted the proper permissions.
On the detection side, iOS is also much more limited than Android due to the operating system blocking access to raw MAC addresses of bluetooth devices and preventing detecting SSIDs of WiFi access points unless the network is connected. As of Android 6.0, access to the raw MAC address is also restricted, making such a system work less well with Bluetooth on newer Android devices.
On both platforms, iOS and Android, the ability to use these techniques to the extent they are allowed by the operating system are possible with native code. Doing so with Ionic or Cordova would require cobbling together a number of plugins (if they even exist) to bridge to the native features to access WiFi SSIDs and do Bluetooth discovery and scanning. This is unlikely to be a quick protoype.
Word of caution: It is always a good idea to try out a system like Datzing before trying to reproduce it yourself, as limitations often cause technologies not to live up to the claims of the marketing materials.
I have to develop an android application that has to get all mobile devices info in same Telco BTS as mine phone. Can I get all other mobile devices cell IDs?
In the comments you mention your requirement is 'I only have to send a broadcast to all the neighboring mobile devices'.
There is actually a solution built into most deployed GSM networks to do this already - it is called Cell Broadcast (or sometimes SMS-CB).
It is usually intended for emergency situations and allows an operator to send a message to all the devices in a given cell efficiently and even when the network is congested.
There is also a newer standard eMBMS which is similar concept but designed for multimedia broadcast, so maybe suitable to more commercial applications. This is not so well deployed at the moment, AFAIK.
Either way, the API's are in the Telco's domain and not available to a device unless the Telco has provided a special service for this.
As others have pointed out, a regular Android device will not have the ability to discover all its peers or to message everyone in the same cell, although a telco could provide a web service that the device could call if they wished.
The division between the 'phone' part of an Android phone and the 'app or computer' part of the device is strictly defined in Android - the intent is not only to protect privacy etc but also to protect the phone functionality and the network from malicious or malfunctioning apps.
I'm just reading up on iBeacon, and I might want to use it for a project I'm currently involved in. What I currently understand from it is this:
Simply put, an iBeacon device broadcasts a message to whomever is
within range. This message includes the sender its mac-address, and
from the intensity of its signal, the receiver can calculate the
distance. iBeacon devices can either be senders, receivers, or both.
1) First of all; is this correct?
Secondly, on the wikipedia page I read that it could enable payments at the point of sale (POS). Because I understand that it is basically a very local broadcast service I'm just trying to understand how something like that would work.
2) So would in case of a payment, the store or the customer initiate the payment?
3) And how would you prevent that other nearby devices pick up the payment messages?
4) Lastly; is it possible to send an iBeacon message to only one iBeacon device identified by its mac address?
Any tips and insights are very welcome!
Enabling mobile payments is an example of something you could build on top of iBeacon technology. But iBeacons themselves are very simple building blocks that would only be a small piece of a solution. It is a common misconception to confuse what iBeacons do themselves with what can be done with iBeacons.
In the payment use case, the only function the iBeacon would perform would be to wake up the payment app and tell it the phone is near the point of sale. (With a specific numeric identifier for the point of sale.) That's it! That is all the iBeacon does. Everything else necessary would be built with other software.
There are lots of possible answers to your other questions about payment processing, but they are not specifically related to iBeacons. Typically, a mobile payment system will require entry of a PIN to confirm payment. So an app using iBeacons could simply display an option to pay to any device with the payment app that is a few feet of the point of sale.
In the simplest implementation, the phone would query the payment server with a message like "I am near POS terminal with iBeacon identifier #12345. How much is the payment?" And the server might respond with a message like "$23.95", which would be displayed on the screen of the phone. In this implementation, the user would verify the amount on the screen and enter a PIN to confirm. This confirmation would be the security mechanism ensuring that the wrong device does not pay for the wrong order. Other more sophisticated implementations are possible, but again they are not strictly related to iBeacons.
Two other clarifications:
While an iBeacon does transmit its Bluetooth Mac address, this is typically ignored. In fact, iOS blocks reading this Mac address, so it is useless on that platform. Instead, applications rely on a three part identifier specific to iBeacons: ProximityUUID, Major, Minor.
There is no way to make only a single device see an iBeacon. It is an open radio transmission visible by everything in its approx. 150 ft. range.