https://github.com/hwvs/androidbluetoothwificollector
A small Android app/Library to collect Bluetooth and Wifi data. Sent to Apache Kafka/RedPanda as JSON, and consumed into a Neo4j DB (server not included)
https://github.com/hwvs/androidbluetoothwificollector
android android-app android-library java scanresults
Last synced: 21 days ago
JSON representation
A small Android app/Library to collect Bluetooth and Wifi data. Sent to Apache Kafka/RedPanda as JSON, and consumed into a Neo4j DB (server not included)
- Host: GitHub
- URL: https://github.com/hwvs/androidbluetoothwificollector
- Owner: hwvs
- License: mpl-2.0
- Created: 2023-07-04T17:59:06.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2023-07-06T06:50:08.000Z (almost 3 years ago)
- Last Synced: 2025-07-22T13:44:17.162Z (11 months ago)
- Topics: android, android-app, android-library, java, scanresults
- Language: Java
- Homepage:
- Size: 145 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Android - Bluetooth & Wifi Data Collector
## Author
Hunter Watson, 2023
[Mozilla Public License 2.0](https://www.mozilla.org/en-US/MPL/2.0/)
## Abstract
This is an Android application that collects Bluetooth and Wifi data. It is intended to be used for research purposes.
The data can be serialized to JSON and sent to a server. (*The server is not included in this repository*)
The server is an Apache Kafka or RedPanda instance. The data is sent to the server using the [Kafka REST Proxy](https://docs.confluent.io/platform/current/kafka-rest/index.html). This data is then consumed and stored in a [Neo4j](https://neo4j.com/) database.
## Classes
* `MainActivity` - The main activity of the application. It contains the UI and the logic for collecting data.
* `BeaconScanner` - A class that scans for Bluetooth and Wifi data. Uses [WifiManager](https://developer.android.com/reference/android/net/wifi/WifiManager) to scan for Wifi data, and [BluetoothAdapter](https://developer.android.com/reference/android/bluetooth/BluetoothAdapter) to scan for Bluetooth data.
* `TaggedBeaconPairCollection` - A class that stores a collection of `TaggedBeaconPair` objects. It also contains methods for serializing the data to JSON.
* `WifiBeacon` / `BluetoothBeacon` - Classes that store the data for a single Wifi or Bluetooth beacon. Parent class is `BeaconBase`.
## Tests (Unit)
* `BeaconScannerTest` - Tests the `BeaconScanner` class. (TODO) Uses [Mockito](https://site.mockito.org/) to mock the `WifiManager` and `BluetoothAdapter` classes.
* `TaggedBeaconPairUnitTests` - Tests the `TaggedBeaconPair` class using mock data.
* *(More that are not documented in this README)*
## Docker
*(To be added)*
## Resources
View the [Main Library Source](https://github.com/hwvs/AndroidBluetoothWifiCollector/tree/main/app/src/main/java/net/hunterwatson/wifidatacollector/beacon)