Android Detect Nearby Device (Covid-19 app) - android

The covid-19 app is capable of detecting who came into contact with who, how do they do it? I am trying to make something similar but I am unsure how they managed to get that information from the phones. I don't need the information to be private (like phone number), it could be something that only the government can make use of (like sim card number or MAC address. Is that possible?
I looked into Google Nearby and Wifi Direct... But as far as I understand it, it requires a handshake (covid19 app doesn't). I also looked into potentially making your phone into a hotspot and capturing wifi requests but I am not sure which library / API lets me do that.
Does anyone have know how this is done? I can't find a concrete answer anywhere, this seems to be actually impossible until I realized that the covid-19 app is doing it.

As Morrison Chang and ArtHare have commented already, Google and Apple have implemented this on an OS level:
In the coming months, Apple and Google will work to enable a broader Bluetooth-based contact tracing platform by building this functionality into the underlying platforms. (source)
If you want the specs they're using, Apple and Google have pages on how contact tracing is implemented, but it would be hard (if not impossible) for an app to implement this.

Related

Identify specific Android device hardware from website

I'm deploying a large number of Android devices for a project which are owned and controlled by me, including with a Mobile Device Management system.
I don't know how to identify the devices when the device is being used to log into our web-based services. We can know who logs in, obviously, but not what device they are coming from.
Ideally we would know the IMEI or Serial of a device when it logs in, but it can really be any unique identifier
I 100% understand why this information is not typically available to a website -- it's easy enough for advertisers and other to track people! However in our case, we own both the endpoints AND the website, so it seems like something should be possible.
Typically our devices clear the cache on the browser when they reboot, so it likely can't be something based on the cache, but I could explore more options here and see whether it's possible to disable this.
The website is based on React, if that's helpful. However, we could use another page built on whatever makes this easier if needed.
We do also have native Android apps running on the device, but I don't know if we can pull information from them into the browser somehow.
Note that we've tried using the WebRTC method to grab internal IP addresses, which works to some extent but is not ideal since it's inconsistent and is blocked on later versions of Android's browsers. Also if the device changes IP, that method no longer helps.

Recommended approaches/API(s) to design a multi-user Android app with N-to-M connection?

Some background on the goal result:
Currently I'm on a team that is working to develop an Android app for use in a classroom. The app is designed to be used across at least 20 or so tablets at once, and to manage connections between all of these devices somehow. It will hold similar functionality as an attendance tool. For instance, the teacher will open their app to an empty list and the students, each with a device of their own, can indicate they are present by clicking a button. Upon each click, the student's name will appear on the teacher app's growing list.
This is the general idea of the app, with the added functionality of student devices able to pass data amongst themselves, as well as the teacher sending out data to them, in an N-to-M device format. As for devices, at the moment we are looking into Amazon Kindles, which can run Android.
We have tried using Google Nearby Connections API:
We have experimented with Google's Nearby Connections API, but have found this to connect inconsistently among three devices. Often, it shows a bluetooth error which seems likely due to inadequate support on the Kindle device for Google's API, for which there doesn't seem to be much documentation online (this is kind of a niche situation). Beyond this issue, I've read on here the Google Nearby API is only intended for use among 7 or so devices at most, due to general lack of bluetooth strength in devices that support it, from what I understand. If that's the case, this wouldn't work for a class of 20+ students.
What we are looking for:
We are hoping to determine the best approach to implementing the Android app of this nature. This is an unfamiliar realm for me, but it seems there are a variety of games out there that utilize functionality of this kind (Kahoot! comes to mind). We have hoped to avoid using standard WiFi as much as possible, since elementary school wireless networks tend to be laggy in the district for which we are developing this app, but if that is the best option then we will go for it. I'd appreciate any insight or advice on how best to approach this development, including API recommendations if you know of any.

Can a Bluetooth end device limit what apps can connect to it?

My company is looking at developing a mobile(Tablet) app that will need to connect to various sensors made by others using Bluetooth. These other companies have their own apps to connect with their individual sensors.
I need my app to be able to connect to their hardware (sensors).
Working with each manufacturer... What is the best way for their development teams to offer what I need without giving away all their code? In almost all cases their current sensor and app provide many more features than what we need.
Is there some middle ground where we ask only for the portions of code to perform the couple of functions we need?
Should they even be concerned about sharing their Bluetooth App code when they are the manufacturer of the sensor itself? Our app is only used to talk to their device which still needs to be purchased from them.
It's going to depend on their business model. Just ask. If they are willing to open up their peripheral, they will provide you with the API. Some might charge you for the "SDK".
You may be able to become a vendor and sign some contracts to ensure that they will continue providing the peripherals and support for them to some degree.
If they say no, it's generally not a good idea to reverse engineer it outside of hobby work. If they change their API, you'll have to change the app, and maybe they'll change it just to make your app stop working.
They can't really limit what devices can connect to it, but knowing how to communicate with the peripheral and having any credentials that it might ask for, is a different matter.

Using Amazon Firefly SDK on Android

I have been doing some heavy research into the field of Visual Search, and I tried the technologies from Google (Goggles), Amazon (Firefly), and other vendors.
I can say that FireFly is actually the best, because its instant identification (no need to snap a photo and send it to some server for processing), plus its able to identify products accurately without having to scan their barcode, which is fascinating.
The thing is, Amazon exposed the Firefly SDK but only for their phone's Fire OS. And you can't use it for other Android development.
However, I am pretty sure this is not a hardware limitation, because Amazon has an app called Flow which runs on Android and iOS which uses the same identification technology, so I am sure any camera can be used and not just the one on the Fire phone.
Does anyone know if it's possible to use the Firefly SDK somehow on Android? I know this might be impossible without some sort of reverse engineering for FireOS, but even so at least it would be technically possible!
Thanks for your response in advance.

Android app for Scan an RF to intercept mobile phone calls

I was reading following article and I come up to know about RF(Radio frequency) signals are the medium of communication between connect mobile phone calls.
Idea came in my mind to have android app kind of RF scanner which secretly eavesdrop on mobile phone conversations around you.
I know i need more research but i quickly want to know if it is possible with android apps or not ?
enter link description here
Android does not offer APIs to do this. They are buried in radio kernel, which comes from pphone vendor. So answer is negative. It is possible but not with android.
PS: COTS solutions doing this are usually restricted in export and pretty expensive.
Honestly I don't see why this would be impossible. The pitfall of building an app like this would be:
a. user will most likely need a rooted phone and some kind of custom radio with their kernel. This shouldn't be a huge issue though as most users looking for something like this should have the know how to root their phone.
b. you wouldn't be able to release this on the market. as soon as google caught wind of such a malicious app they would remove it immediately.
Catching the signal of other conversation is not enough, cause signal is at least encrypted!

Categories

Resources