← Retour au blog ← Back to blog
NetScan

Construire NetScan : ce que Android ne vous dit pas sur les scanners réseau Building NetScan: what Android doesn't tell you about network scanners

5 août 2026 August 5, 2026

NetScan est parti d'un besoin simple : savoir ce qui est réellement connecté sur mon réseau Wi-Fi, sans dépendre d'un outil qui collecte des données ou qui ne fonctionne qu'en abonnement. Ce qui semblait être un week-end de développement s'est transformé en une vraie plongée dans les restrictions d'Android — voici ce que j'en retiens.

Le scan réseau n'est pas fiable comme on l'imagine

La première version tentait un simple ping/isReachable() pour détecter les appareils actifs. Résultat : à peu près tout répondait "présent", même des IP qui n'existaient pas. Il a fallu passer à un sondage TCP pur, avec une distinction stricte entre "connexion acceptée" (appareil confirmé) et "connexion refusée" (souvent juste du bruit d'un routeur saturé par le scan lui-même).

L'adresse MAC a disparu — pour de bon

Depuis Android 10, aucune application ne peut lire la table ARP du système, quel que soit le téléphone. C'est une restriction Google, pas une limite de NetScan — et ça veut dire qu'aucun scanner réseau sur le Play Store ne peut légitimement afficher fabricant ou adresse MAC sans root. Plutôt que de contourner ou d'inventer une info, NetScan l'affiche honnêtement : "Fabricant inconnu".

Un scanner réseau qui prétend encore lire l'adresse MAC sur un Android récent ment quelque part dans sa méthode.

Le bug le plus tenace : une simple boîte de dialogue

En ajoutant le support bilingue français/anglais, une boîte de dialogue de l'app refusait obstinément de changer de langue — jusqu'à provoquer un vrai plantage (IllegalStateException: No ActivityResultRegistryOwner). La cause : Compose ouvre les boîtes de dialogue dans une fenêtre séparée qui n'hérite pas correctement du contexte utilisé pour appliquer la langue choisie. La correction a fini par tenir en une ligne — mais identifier la cause exacte a demandé un vrai rapport de plantage, pas juste des suppositions.

Ce qui reste vrai pour la suite

NetScan est disponible sur le Play Store — voir la page dédiée.

NetScan started from a simple need: knowing what's actually connected to my Wi-Fi network, without relying on a tool that collects data or only works behind a subscription. What looked like a weekend project turned into a real deep dive into Android's platform restrictions — here's what stuck with me.

Network scanning isn't as reliable as you'd think

The first version tried a simple ping/isReachable() call to detect active devices. Result: almost everything came back "present," even IPs that didn't exist. I had to switch to raw TCP probing, with a strict distinction between "connection accepted" (confirmed device) and "connection refused" (often just noise from a router overloaded by the scan itself).

The MAC address is gone — for good

Since Android 10, no app can read the system's ARP table, on any phone. That's a Google restriction, not a NetScan limitation — meaning no network scanner on the Play Store can legitimately show vendor or MAC address without root. Rather than fake it, NetScan shows it honestly: "Unknown vendor."

Any network scanner that still claims to read MAC addresses on a recent Android version is lying somewhere in its method.

The most stubborn bug: a simple dialog box

While adding French/English bilingual support, one dialog in the app stubbornly refused to switch language — eventually causing a real crash (IllegalStateException: No ActivityResultRegistryOwner). The cause: Compose opens dialogs in a separate window that doesn't correctly inherit the context used to apply the chosen language. The fix ended up being one line — but pinning down the exact cause took an actual crash report, not just guesses.

What still holds going forward

NetScan is available on the Play Store — see the dedicated page.