Back to portfolio

Ad-free Android · Developer · com.michael.blefinder

BLE Finder ad-free Android app icon

BLE Finder

Ad-free BLE scanner for Android. Find nearby Bluetooth Low Energy devices with RSSI radar, hot/cold proximity, and optional audio pings — no ads while you track peripherals.

Completely ad-free — no ads, no trackers, no sponsored clutter.

Ad-free Android app

What is BLE Finder?

BLE Finder is an ad-free Android app that scans nearby Bluetooth Low Energy devices and turns RSSI changes into a radar-style hot/cold tracking experience with optional audio pings.

Ad-free advantage: Completely ad-free — no ads, no trackers, no sponsored clutter. MichaelSam94 apps are built without banner ads, interstitial ads, or video ad interruptions.

Key capabilities

  • Low-latency BLE scanning
  • Radar tracking with hot/warm/cold states
  • Optional proximity audio pings
  • Filter and sort by signal, name, type
  • Local scan logs with no ads

Frequently asked questions

Is BLE Finder ad-free?

Yes. BLE Finder is completely ad-free so device hunting is not interrupted by banners or pop-ups.

How does BLE Finder estimate proximity?

It uses RSSI signal strength with smoothing to show hot, warm, and cold proximity states for a selected device.

Are scan logs uploaded?

No. Tracked devices and scan history are stored locally in Room, with retention controls you can purge.

BLE Finder is an ad-free Android app that scans nearby Bluetooth Low Energy devices and turns RSSI changes into a radar-style hot/cold tracking experience with optional audio pings.

Ad-free: Completely ad-free — no ads, no trackers, no sponsored clutter.

BLE Finder is an Android app for finding nearby Bluetooth Low Energy devices by turning raw RSSI signal changes into a radar-style tracking experience. It is built for people trying to locate wearables, earbuds, styluses, trackers, and other BLE peripherals using visual hot/cold feedback and optional audio pings. No hosted demo is configured because the primary artifact is a mobile app.

Project Overview

The app scans nearby BLE advertisements, filters and sorts discovered devices, and lets the user focus on one target at a time. It estimates proximity from RSSI, smooths noisy signal changes, keeps local scan logs in Room, and includes Play Store-ready assets plus a separate privacy policy site for publication support.

Key Features

  • 📡 Low-latency BLE scanning with Android permission handling for modern Bluetooth APIs.
  • 🎯 Radar tracking screen with RSSI-based hot, warm, and cold proximity states.
  • 🔊 Optional audio ping feedback that changes frequency and interval as signal strength improves.
  • 🧭 Device filtering and sorting by type, signal strength, advertised name, and last-seen time.
  • 🗃️ Local Room database for tracked devices and scan-history logs.
  • 🧹 Log retention controls with purge support for old scan entries.
  • 🧪 JVM, Robolectric, Compose UI, and Roborazzi screenshot tests.
  • 🛒 Generated Google Play graphics, phone screenshots, tablet screenshots, and listing copy.

Architecture Overview

The project follows a lightweight clean-architecture layout. Compose screens render state and delegate actions to ViewModels, ViewModels call domain use cases, and use cases depend on repository interfaces. Data implementations wrap Android Bluetooth scanning, Room DAOs, and AudioTrack-based audio feedback.

Scan flow: the user grants Bluetooth/location permissions, BleScanner starts a low-latency BLE scan, scan results are converted into BleDevice models, the UI filters/sorts them, and tracking screens calculate smoothed RSSI and estimated distance for a selected MAC address.

Design patterns used here include repository interfaces, use-case classes, manual dependency injection through AppContainer, Kotlin Flow for asynchronous scan streams, and immutable UI state collected by Compose.

Tech Stack & Libraries

LayerTechnologyVersionPurpose
PlatformAndroid SDKmin 24, target 36, compile 36.1Native BLE scanning app
LanguageKotlin2.2.10Application source and Gradle DSL
BuildGradle Wrapper9.5.1Reproducible local builds
BuildAndroid Gradle Plugin9.1.1Android application packaging
UIJetpack Compose BOM2024.09.00Declarative Android UI
UIMaterial 3BOM-managedApp components and theme
NavigationNavigation Compose2.8.9Screen routing
PersistenceRoom2.7.0Local database and DAOs
AsyncKotlin Coroutines1.10.2Flows, scanning, and background work
AudioAndroid AudioTrackAndroid frameworkProximity ping synthesis
NetworkingOkHttp / Retrofit / Moshi4.10.0 / 2.12.0 / 1.15.2Available dependencies; no API client is currently wired
TestingJUnit / Robolectric4.13.2 / 4.16.1Unit and Android resource tests
ScreenshotsRoborazzi1.59.0Play Store screenshot and graphic generation
SecretsMaps Platform Secrets Plugin2.0.1.env loading if future secrets are added

Configuration

Runtime settings are exposed in the app's Settings screen:

SettingLocationRestart requiredDescription
Audio Proximity PingSettings screenNoEnables or disables signal-based audio feedback.
Scan Mode OptimizationSettings screenNoUI control for scan behavior tradeoffs.
Log Retention PeriodSettings screenNoSelects a retention window from 3 to 30 days.
Release signingapp/build.gradle.kts and environment variablesBuild restartConfigures upload-key signing.
App identityapp/build.gradle.ktsRebuildDefines namespace, application ID, version code, and version name.
App display nameapp/src/main/res/values/strings.xmlRebuildSets the launcher label.

Usage / Quick Start

Run From Android Studio

1. Open the BLEFinder folder in Android Studio. 2. Select a physical Android device with Bluetooth enabled. 3. Run the app configuration. 4. Grant Bluetooth and location permissions when prompted. 5. Tap Scan Devices, then choose a discovered peripheral to open the radar tracker.

Run From The Terminal

cd BLEFinder
./gradlew assembleDebug
adb install -r app/build/outputs/apk/debug/app-debug.apk
adb shell monkey -p com.michael.blefinder 1

Generate Play Store Assets

cd BLEFinder
./gradlew generatePlayStoreAssets

tablet screenshots, and listing copy.

API Reference

Not applicable. BLE Finder is a local Android application and does not expose an HTTP API, CLI API, SDK, or server endpoint. Retrofit, OkHttp, and Moshi are present as dependencies, but no repository evidence shows a configured network API client.

Testing

Run all JVM unit, Robolectric, and non-screenshot Compose tests:

./gradlew testDebugUnitTest

Run Android instrumented tests on a connected device or emulator:

./gradlew connectedDebugAndroidTest

Regenerate Roborazzi screenshots and Play Store graphics:

./gradlew generatePlayStoreAssets

Test files live under app/src/test/java/com/michael/blefinder/ and app/src/androidTest/java/com/michael/blefinder/. Existing names use *Test.kt, while Play Store screenshot tests are grouped under app/src/test/java/com/michael/blefinder/playstore/.

Coverage reporting is not configured in the repository.

Deployment

Debug Deployment

Use Android Studio or install the Gradle-generated APK directly:

./gradlew assembleDebug
adb install -r app/build/outputs/apk/debug/app-debug.apk

Release Build

Set signing credentials, then build the release APK or Android App Bundle:

export KEYSTORE_PATH="$PWD/my-upload-key.jks"
read -rsp "Store password: " STORE_PASSWORD && export STORE_PASSWORD
read -rsp "Key password: " KEY_PASSWORD && export KEY_PASSWORD

./gradlew assembleRelease
./gradlew bundleRelease

Release artifacts are generated under app/build/outputs/. Docker, docker-compose, and backend health checks are not applicable because this repository builds a native Android app with no server component.

Privacy Policy Site

The privacy policy lives in the sibling ../BLEFinder-pv/ project and is configured for Netlify static hosting.

cd ../BLEFinder-pv
python3 -m http.server 8080 --directory .
DevPocket ad-free Android app iconDeveloper
DevPocket

Ad-free offline developer utilities for Android: code workspace, JSON/XML formatters, regex playground, JS sandbox, and reference docs — no ads, no telemetry, on-device.

com.michael.devpocket
SensorScope ad-free Android app iconDeveloper
SensorScope

Ad-free Android hardware diagnostics. Live sensor plots, battery telemetry, thermal stress tests, calibration baselines, and CSV export — no ads for technicians and developers.

com.michael.sensorscope
AuraSound ad-free Android app iconAudio
AuraSound

Ad-free offline ambient sound mixer for Android. Layer focus, nature, ambient, and sleep loops with volume controls, presets, and a sleep timer — no ads, no streaming account.

com.michael.aurasound
Bulk QR & Barcode Suite ad-free Android app iconScanner
Bulk QR & Barcode Suite

Ad-free bulk QR and barcode scanner for Android. High-speed batch scanning, CSV/Excel exports, and branded logo QR generation — no ads, offline-first inventory tools.

com.michael.bulkqrscanner
ClearVoice AI ad-free Android app iconAI
ClearVoice AI

Ad-free on-device speech enhancer for Android. Isolate vocals, reduce echo and static, batch-process audio, and use live loopback — no ads, no cloud audio uploads.

com.michael.clearvoiceai
ClipVault ad-free Android app iconProductivity
ClipVault

Ad-free privacy clipboard manager for Android. Encrypted local clipboard history, regex triggers, and offline text transforms — no ads, no internet permission, no cloud sync.

com.michael.clipvault
Doc Scanner Vectorizer ad-free Android app iconDocument
Doc Scanner Vectorizer

Ad-free Android document scanner with perspective correction, paper cleanup filters, scan history, and SVG vector export — no ads, camera-based, privacy-first.

com.michael.docscannervectorizer
EdgeFlow ad-free Android app iconUtility
EdgeFlow

Ad-free Android edge gesture helper. Turn left/right screen edges into one-handed shortcut zones for Back, Home, notifications, media, and more — no ads in your gesture flow.

com.michael.edgeflow

All ad-free Android app names

Complete index of completely ad-free Android apps by Michael Samuel Naeem on Google Play and GitHub — utility, privacy, productivity, developer, media, finance, and device tools with no ads. Completely ad-free — no ads, no trackers, no sponsored clutter. Every listed Android app is published without ads. Search engines can discover each exact product name, package, marketplace listing, and source page from this index.

  • AuraSound ad-free · Audio · com.michael.aurasound · ad-free ambient sound mixer Android
  • BLE Finder ad-free · Developer · com.michael.blefinder · ad-free BLE scanner Android
  • Bulk QR & Barcode Suite ad-free · Scanner · com.michael.bulkqrscanner · ad-free bulk QR barcode scanner
  • ClearVoice AI ad-free · AI · com.michael.clearvoiceai · ad-free noise reduction Android
  • ClipVault ad-free · Productivity · com.michael.clipvault · ad-free clipboard manager Android
  • DevPocket ad-free · Developer · com.michael.devpocket · ad-free developer toolkit Android
  • Doc Scanner Vectorizer ad-free · Document · com.michael.docscannervectorizer · ad-free document scanner Android
  • EdgeFlow ad-free · Utility · com.michael.edgeflow · ad-free edge gestures Android
  • FolderFlow ad-free · Productivity · com.michael.folderflow · ad-free app organizer Android
  • FrozenDroid ad-free · Utility · com.michael.frozendroid · ad-free app freezer Android Shizuku
  • InsightlySpend ad-free · Finance · com.michael.insightlyspend · ad-free personal finance Android
  • Micro Budgeting ad-free · Finance · com.michael.microbudgeting · ad-free offline budget app Android
  • NotchCommand ad-free · Utility · com.michael.notchcommand · ad-free notch shortcuts Android
  • PDF Toolkit ad-free · Document · com.michael.pdftoolkit · ad-free PDF toolkit Android
  • Photo Optimizer ad-free · Media · com.michael.photo.optimizer · ad-free photo compressor Android
  • PrivAI ad-free · AI · com.michael.privai · ad-free on-device AI notes OCR
  • SensorScope ad-free · Developer · com.michael.sensorscope · ad-free Android sensor diagnostics
  • Smooth-Mo ad-free · Utility · com.michael.smoothmo · ad-free slow motion video Android
  • StoreClear ad-free · Utility · com.michael.storeclear · ad-free storage cleaner Android
  • Subtrackr ad-free · Finance · com.aistudio.subtrackr · ad-free subscription tracker Android
  • Tic Tac Toe ad-free · Game · com.michael.tic_tac_toe · ad-free tic tac toe Android
  • Todo App ad-free · Productivity · com.michael.todoapps · ad-free todo list Android
  • WalkPlanner ad-free · Health · com.michael.walkplanner · ad-free walk route planner Android
  • Wi-Fi Drop ad-free · Utility · com.michael.wifidrop · ad-free Wi-Fi file transfer Android