Android permissions
Fin requests permissions just-in-time — only when you open a tool that needs them. Android changed these rules repeatedly, so Fin branches on your API level.
| Permission | Used by | When |
|---|---|---|
NFC | NFC Lab, HCE | Normal permission, granted at install. |
BLUETOOTH_SCAN / BLUETOOTH_CONNECT | BLE Nearby | Android 12+ (API 31+). Declared neverForLocation. |
ACCESS_FINE_LOCATION | BLE / Wi-Fi scan | Only on API ≤ 32, where scans require it. Capped with maxSdkVersion. |
NEARBY_WIFI_DEVICES | Wi-Fi Diagnostics | Android 13+ (API 33+), neverForLocation. |
CAMERA | QR Lab, lens-reflection sweep | Requested when you open scanning. |
VIBRATE | Optional feedback | Normal permission. |
Why Wi-Fi/BLE scans sometimes ask for location
Before Android 12 (BLE) and Android 13 (Wi-Fi), the OS treated nearby-radio scans as location-capable and
required location permission. Fin uses the modern neverForLocation /
NEARBY_WIFI_DEVICES paths on new devices, and only falls back to location on older ones.
Permissions Fin never requests
Contacts, SMS, microphone, background location, call logs, accessibility services, device admin, and overlay permissions. The MVP also requests no INTERNET permission.