Built to order

Indoor Positioning System Android App using WiFi RSSI Fingerprinting

This project builds an Android app that locates a phone indoors — beyond GPS reach — using WiFi RSSI fingerprinting. In survey mode you walk a 2 m grid and record RSSI fingerprints from 3–4 fixed access points; in positioning mode the app matches each live scan against the on-device database with a weighted k-NN (k=3) estimator and plots the fix on the floor map with the error in metres. It respects Android 9+ scan-throttling limits; the web demo runs the same matching code path. Suitable for B.E./B.Tech final-year projects in Computer Science, IT and Android development.

Android GitHTML · CSS · JavaScript demoKotlin · Android SDKRoom databaseMaterial 3 UIGradle · Android StudioWifiManager · ScanResult APIJSON fingerprint exportSoftware
Indoor Positioning System Android App using WiFi RSSI Fingerprinting — project thumbnail preview
More project photos (2)

The problem

GPS stops working the moment you walk indoors — concrete, steel and roofs attenuate satellite signals below usable levels, so malls, hospitals, warehouses and campuses have no reliable phone positioning. WiFi RSSI fingerprinting solves this with hardware that is already there: every access point's signal strength forms a location-specific signature, and a phone can learn where it is by comparing live scans against a surveyed radio map. Students attempting indoor positioning usually stop at theory or fake it with hard-coded coordinates. This project builds the real thing as a native Android app: a survey mode that records RSSI fingerprints on a 2 m grid, an on-device fingerprint database, and a positioning mode that matches each scan with a weighted k-nearest-neighbours estimator (k=3, Euclidean distance over RSSI space) and plots the fix on the floor plan with the error in metres. A working web demo runs the same survey-and-match code path, so the logic can be inspected and tested without a phone.

How it works

  1. Fix 3–4 WiFi access points at known spots on the floor (2.4 GHz band, design) and note each AP's BSSID and mounting position to within ~0.5 m (expected).
  2. In survey mode, walk the floor on the marked 2 m grid; at each point the app runs 4 scans and stores the averaged RSSI vector with its (x, y, floor) coordinates.
  3. The fingerprints accumulate in the on-device database — a radio map of the floor — exportable as JSON for backup or analysis.
  4. In positioning mode the app scans once per cycle, builds the live RSSI vector, and computes its Euclidean distance to every stored fingerprint.
  5. The k=3 nearest fingerprints are fused with inverse-distance weighting, and the result is plotted on the floor map as the estimated position.
  6. Drop the ground-truth pin on your real spot to see estimated vs true position and the error in metres; expected accuracy is 1–3 m (design target) on a furnished office floor.

Tech stack:

  • Kotlin · Android SDK
  • WifiManager · ScanResult API
  • Room (SQLite) fingerprint database
  • Material 3 UI components
  • JSON fingerprint export
  • Gradle · Android Studio
  • HTML · CSS · JavaScript (web demo)
  • Git
Parameter Value
Positioning method WiFi RSSI fingerprinting + weighted k-NN (k = 3, selectable 3–5)
Access points 3–4 per floor (design)
Signal band 2.4 GHz (design)
RSSI range −30 to −95 dBm (expected)
Survey grid 2 m × 2 m (design)
Scans per fingerprint 4, averaged (design)
Position error 1–3 m (design target, environment-dependent)
Scan cadence 1 scan per ~30 s per foreground app (Android 9+ platform limit)
Minimum Android version Android 9 / API 28 (expected)
Demo floor size 44 m × 30 m (web demo)
Fingerprint storage On-device database, works fully offline

Project features

  • [WiFi fingerprint survey mode] Walk the floor on a 2 m grid and tap to record a fingerprint at each point — every fingerprint averages 4 scans across all visible access points to smooth out fast fading.
  • [Weighted k-NN position estimator] Each live scan is compared against the whole radio map with Euclidean distance in RSSI space; the k=3 nearest fingerprints (selectable 3–5) are combined with inverse-distance weighting into the position fix.
  • [Live position on floor map] The estimated fix renders on the building floor plan next to a draggable ground-truth marker, with a dashed error line drawn between the two.
  • [Position error display] Every fix reports estimated vs true coordinates and the error in metres; the session mean error is tracked so accuracy is quoted from real runs, not assumed.
  • [On-device fingerprint database] The radio map lives in local storage (Room/SQLite with JSON export and import) — positioning works fully offline with no server and no internet connection.
  • [Scan-throttling-aware scheduler] The app is built around Android 9+ platform limits: a foreground app may scan at most 4 times per 2-minute window, so survey batches and positioning cycles are scheduled accordingly.
  • [Multi-floor support] One radio map per floor with a floor picker; each floor is surveyed independently and the estimator only matches within the active floor's map.

What is included

  • Complete Android app source (Kotlin): survey mode, k-NN positioning engine, floor-map UI, error analytics
  • Room/SQLite fingerprint database with JSON export and import
  • Working web demo that simulates the app's survey and positioning logic with the same matching code path
  • Build and installation guide (Android Studio, APK signing)
  • Project report PDF (background, fingerprinting theory, k-NN method, methodology, test procedure)
  • PPT presentation for final review
  • Viva Q&A preparation document (RSSI, path loss, k-NN, scan throttling, accuracy factors)

Limitations & prerequisites

  • Accuracy is approximate: 1–3 m error is a design target for a typical furnished office; moving furniture, crowds and AP changes shift fingerprints, so the floor must be re-surveyed after layout changes.
  • Android 9 and above throttle foreground WiFi scans to 4 per 2-minute window (official platform limit) — live fixes arrive at best about once per 30 s.
  • Indoor use only: the system does not replace GPS outdoors, and it needs no satellite signal to work inside.
  • Requires 3–4 access points fixed in place; APs that are moved, replaced or reconfigured invalidate the radio map.
  • Different phone models report RSSI with different offsets, so one phone model is used for both survey and positioning (design assumption).
  • The baseline build surveys the 2.4 GHz band only; 5 GHz fingerprints differ and need a separate survey.

Frequently Asked Questions

Which access points or hardware are needed?

Any 3–4 ordinary WiFi routers or access points fixed to ceilings or walls on the 2.4 GHz band — the kind already present in most college buildings. No beacons and no extra hardware to buy; the phone is the only sensor the system needs.

What indoor accuracy can we honestly expect?

The design target is 1–3 m on a furnished office floor with a 2 m survey grid — the classic RADAR-style fingerprinting result reported in the literature is a median error of about 2 m. Your report quotes the mean error measured from your own survey runs, never a pre-claimed number.

Why WiFi fingerprinting instead of Bluetooth beacons?

WiFi uses infrastructure that already exists, so there is nothing to install, power or maintain; Bluetooth beacons must be purchased, mounted and have their batteries replaced. That makes the WiFi approach cheaper to build and far easier to demonstrate inside a college building. BLE fusion is listed as future scope in the report.

Does the app need internet or a server?

No. Fingerprints are stored in the on-device database and the k-NN matching runs locally on the phone, so positioning works fully offline. That edge-computing angle — no cloud, no latency, no data leaving the device — is a strong viva talking point.

Which Android versions are supported?

Android 9 (API 28) and above. That is also where scan throttling begins — 4 foreground scans per 2-minute window — and the app's survey scheduler is built around that official platform limit. The report documents the exact permission flow, since location permission and location services must both be on for scans to return results.

Is this project suitable for a final-year project?

Yes — for Computer Science, IT and Android-focused programs. It combines mobile development, wireless signal processing, a real algorithm (k-NN over RSSI space) and honest experimental evaluation with measured error analysis. A working app plus measured results gives the student genuine material to defend in the viva.

Components & software requirements
  • Kotlin · Android SDK
  • WifiManager · ScanResult API
  • Room (SQLite) fingerprint database
  • Material 3 UI components
  • JSON fingerprint export
  • Gradle · Android Studio
  • HTML · CSS · JavaScript (web demo)
  • Git
Delivery information

Built-to-order project. Delivery timeline is shared after order confirmation based on current queue.

Support terms

Complete documentation, setup guide, and viva preparation included. Support for setup and explanation provided.

Download free synopsis (PDF)

Enter your name and WhatsApp number — the synopsis PDF downloads immediately. We may send occasional project updates on WhatsApp; no spam.

Related guides

All guides

Controlling Arduino and ESP32 from an Android App: Bluetooth, BLE and WiFi

Most app-to-hardware student builds pick one of three links: Bluetooth Classic via an HC-05 (~10 m, dead-simple serial), BLE on the ESP32 (low power, app talks through GATT characteristics), or WiFi (ESP32 as hotspot or on your LAN, HTTP or MQTT). This guide walks all three, shows the HC-05 AT-mode wiring, a minimal message protocol you can design in ten minutes, Flutter vs native Kotlin tradeoffs, and the Android 12+ BLUETOOTH_CONNECT permission bug that silently breaks most student apps. End with a demo-day checklist and a failure table so your demo survives the classroom.

Read guide

Best 10 Android App Projects for Final Year

Ten Android app projects for final year from real, published projectech.in listings — donation camp finders, job marketplaces, booking apps, expense splitters, gym trackers, visitor management — each with its real problem, how it works, and why students pick it.

Read guide

Best 10 Android Utility App Projects for Daily Life

Clients keep asking for one thing: an app project they can actually install and use every day — not a demo that only runs during the viva. This guide lists 10 real, published Projectech Android projects built exactly for that: medicine reminders, a parking-spot saver, vehicle maintenance logs, PUC reminders, vegetable price tracking, WiFi coverage mapping, offline-first notes, a safety SOS app, a study planner and spaced-repetition flashcards. Every entry links to its live project page with full source, documentation and build details.

Read guide
Get a quotation