FIND3 is a minimal Android app for using with FIND3. This app will allow you to use your phone to perform constant scans of Bluetooth and WiFi signals and levels that can be associated with certain locations in your home to allow internal positioning. To receive the data, the FIND3 public server can be used or a personal server can be deployed.
The Framework for Internal Navigation and Discovery (FIND) is like GPS, but for your every room in your house/business, with using only a simple smartphone or laptop.
Your device (laptop or a smartphone) tracks itself by actively scanning for nearby Bluetooth/WiFi devices and records their signal strengths and classifying them based on known signal strengths for a given location.
This repository is a complete re-write of the previous version of FIND. The API for sending fingerprints (/track and /learn) is backward compatible. There are several notable improvements on the previous version:
- Support for any data source, Bluetooth / WiFi / magnetic fields / etc. (previously just WiFi)
- Passive scanning built-in (previously required a separate server)
- Support for Bluetooth scanning in scanning utility (previously just WiFi)
- Meta-learning with 10 different machine learning classifiers (previously just three)
- Client uses Websockets+React which reduces bandwidth (and coding complexity)
- Rolling compression of mac addresses for much smaller on-disk databases (see mapslimmer)
- Data storage in SQLITE-database (previously it was BoltDB)
Although APK downloads are available below to give you the choice, you should be aware that by installing that way you will not receive update notifications and it's a less secure way to download. We recommend that you install the F-Droid client and use that.Download F-Droid
This version requires Android 6.0 or newer.
It is built and signed by F-Droid, and guaranteed to correspond to this source tarball.
pair with Bluetooth devicesAllows the app to view the configuration of the Bluetooth on the phone, and to make and accept connections with paired devices.
access Bluetooth settingsAllows the app to configure the local Bluetooth phone, and to discover and pair with remote devices.
access approximate location (network-based) only in the foregroundThis app can get your location based on network sources such as cell towers and Wi-Fi networks, but only when the app is in the foreground. These location services must be turned on and available on your phone for the app to be able to use them.
access precise location only in the foregroundThis app can get your exact location only when it is in the foreground. These location services must be turned on and available on your phone for the app to be able to use them. This may increase battery consumption.
connect and disconnect from Wi-FiAllows the app to connect to and disconnect from Wi-Fi access points and to make changes to device configuration for Wi-Fi networks.
view Wi-Fi connectionsAllows the app to view information about Wi-Fi networking, such as whether Wi-Fi is enabled and name of connected Wi-Fi devices.
have full network accessAllows the app to create network sockets and use custom network protocols. The browser and other applications provide means to send data to the internet, so this permission is not required to send data to the internet.
prevent phone from sleepingAllows the app to prevent the phone from going to sleep.