This application uses WiFi fingerprint for indoor positioning. The reference data consists of 6 locations in the A-corridor of the CS building (first-floor). There are also measurement data measured at two random locations in the same corridor. The app estimates the location where measurement data were measured by comparing them with reference data. One possible approach to estimate the location is to compute the Euclidean distance between two Wi-Fi fingerprints and the distance can be defined as:
D=√ Σeach BSSID(SLmeasurement−SLreference )^2
The app also takes its own measurements (5 measurements every 5 seconds) to create its own reference data and stores them in a json file on the SD card.
The app also calculates the distance between two reference points using the accelerometer(raw accelerration-gravity acceleration) in order to first compute the velocity by integrating once and then obtain the dispalcement by integrating the result
Files :
app folder build, libs, app.iml, build.gradle, proguard-rules.pro: config files generated by AndroidStudio src: contains all the source code files src/main/assets folder: contains all the json files (reference_data, measurement_date, etc) src/main/java/indoor/aalto: main package indoorLocalization AccelerometerEventListener.java: Listens for incoming values coming from the accelerometer MainActivity.java: screen presented to the user: creates a window in which you can place your UI MainActivityController.java: here the main functionalities behind MainActivity are implemented Traveller.java: auxiliary class used for taking accelerometer values. Simulates the moving object WiFiScanReceiver.java: Broadcast Receiver for the Wifi state connection information json/models models for mapping json to objects using Jackson (JSON library for java) sensors SensorManagement.java: used for displaying sensor information from the phone utils DirPath.java: enum used to map folder/files names MeasurementStructure.java: helper class for storing measurements Utils.java: helper class used for reading/writing files MyScanResult.java:Adds distance from access point to device to the ScanResult received when scanning for ap. WiFiManagement.java: Contains WiFi connection/scanning methods src/main/res: contains resources used for displaying UI components AndroidMainifest.xml: presents essential information about the app to the Android system, information the system must have before it can run any of the app's code E.g: permission to read sensor information min, max API version