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.
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?
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.
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.
This question follows on from Unity3D -- Send message to other mobile phones in the same vicinity
However, I made mistake of restricting to Unity3D.
So I would like to re-ask the question without that constraint.
Let us say we have 20 mobile phone users in a cave (so no Wi-Fi networks / isGPS)
One user hits a button, and every other user's screen flashes, (within a few milliseconds)
How to accomplish this?
What if everyone is using an iPhone?
What if there is a mix of iPhone and android users?
Finally, is there any solution that would cover a wider range of phones?
You should have some network so that mobiles can share some data. Bluetooth can have maximum of 10 m distance coverage (depends upon devices though). Since, all mobile are running same app they should be linked to a network and communicate. Please Check:
http://developer.android.com/samples/BluetoothLeGatt/index.html
You can create one device as server and communicate among other devices.
https://github.com/polyclef/BluetoothChatMulti
If you have installed the app on all of the devices then in all probability yes, if the device supports push (pretty much any smartphone) then you can use the push service to synchronize the devices based on geofencing (ie, 10m from my location), there are some other discovery routes you could try to (without using the B word) pinging other devices
the app would need to be able to provide some sort of server service if it was to create its own private network based on the IP addresses of the devices it found nearby, as those devices would have to connect to that phone acting as a server. the network interface shouldn't be important, but connecting the satellite devices to the server should be. You could try doing it based on which device can provide data services, aka hotspot. You can easily connect devices to networks programmatically.
at that point your faced with the classic client server problem. There is going to be a huge amount of work to get devices configured, network creation, client server infrastructure if it has to be done without data, packet optimization. Very expensive and very high risk depending on how many restrictions there are.
Search for How to make a html5 group chat and then build on that example.
Possibly send commands to the chat delimited by a / character where a javascript could then execute the command.
Good Luck with your design.
Danny117
I'm interested in fleshing out an idea for a Android phone app, and I'm wondering if this is possible. So I would have the app running in the background on Phone A, then when it finds another Android phone B, it saves certain information like time, GPS location, just state variables.
But if the other phone is also running the same app, the two phones connect and share trivial non-private information.
Hypothetically, would this be possible? Would I go through a local ad-hoc Wi-Fi connection, or constantly broadcast Bluetooth?
If both people have the same app, you could do it in a round about way. If two people installed the app on their phone and agreed to have their gps coordinates shared, you could upload both sets of gps coordinates to a server as the people move around. The server could then compare which people are close to each other. When the user wants to share information with another user, the phone just needs to ask the server who is in their vicinity and sharing could be done over the internet. This is essentially how Bump works. Bumping two phones together triggers a call to the server to see who else is bumping in that vicinity at the same time. After phones close by are discovered, you might be able to trigger bluetooth pairing and sharing if you don't want to share over the internet.
Bluetooth is the easiest way for two phones to communicate directly with each other. However, both phones would have to be paired through the Settings->Wireless->Bluetooth menu. You would experience better range and speed with WiFi, but this requires a router as far as I know.
I found out how this can be done, use the viewranger app on both phones, create a user and log into the app on both phones. I set this up with myself as the user. Then the second phone (the one with broken gps) is used to track the user who is in my back pocket.
The user in both cases is me.
The problem with this is that a phone signal is required.