@tenkam/react-native-wifi-scanner
v1.0.0
Published
Bibliotheque React Native pour scanner les reseaux Wi-Fi environnants sur Android
Maintainers
Readme
react-native-wifi-scanner
Bibliothèque React Native pour scanner les réseaux Wi-Fi environnants sur Android.
Installation
npm install react-native-wifi-scannerConfiguration Android (étape obligatoire)
Ouvrez android/app/src/main/java/com/VOTRE_APP/MainApplication.kt et ajoutez une ligne :
import com.wifiscanner.RNWifiScannerPackage // ← Ajouter cet import
override fun getPackages(): List<ReactPackage> =
PackageList(this).packages.apply {
add(RNWifiScannerPackage()) // ← Ajouter cette ligne
}Puis recompilez :
cd android && ./gradlew clean && cd ..
npx react-native run-androidUtilisation — Hook (recommandé)
import { useWifiScanner } from 'react-native-wifi-scanner';
const MyComponent = () => {
const {
networks, // tableau des réseaux détectés
isScanning, // true pendant le scan
error, // message d'erreur ou null
scan, // lancer un scan manuel
stopAutoScan, // arrêter l'auto-scan
startAutoScan, // reprendre l'auto-scan
} = useWifiScanner({
autoScan: true, // scan automatique toutes les 10s
interval: 10000, // intervalle en millisecondes
});
return (
<View>
{isScanning && <Text>Scan en cours...</Text>}
{networks.map(net => (
<Text key={net.bssid}>{net.ssid} — {net.rssi} dBm</Text>
))}
<Button title="Scanner" onPress={scan} />
</View>
);
};Utilisation — API directe
import { WifiScanner } from 'react-native-wifi-scanner';
// Vérifier si le Wi-Fi est activé
const enabled = await WifiScanner.isWifiEnabled();
// Lancer un scan et récupérer les résultats
const networks = await WifiScanner.scanNetworks();
// Chaque réseau contient :
// {
// ssid: string — Nom du réseau
// bssid: string — Adresse MAC du routeur
// rssi: number — Signal en dBm (ex: -65)
// frequency: number — Fréquence en MHz (ex: 2437)
// capabilities: string — Sécurité (ex: "[WPA2-PSK-CCMP][ESS]")
// }Fonctions utilitaires incluses
import {
rssiToPercent, // -65 dBm → 70%
rssiToLabel, // -65 dBm → "Bon"
frequencyToBand, // 5180 MHz → "5 GHz"
frequencyToChannel, // 2437 MHz → canal 6
rssiToDistance, // -65 dBm → "~8 m"
parseSecurityType, // "[WPA2-PSK]" → "WPA2"
sortNetworks, // trier par signal/nom/fréquence/sécurité
filterNetworks, // filtrer par SSID ou BSSID
computeStats, // statistiques globales
} from 'react-native-wifi-scanner';Permissions
Les permissions suivantes sont automatiquement ajoutées au Manifest de l'application lors du build (fusion automatique Android) :
ACCESS_WIFI_STATECHANGE_WIFI_STATEACCESS_FINE_LOCATION← obligatoire pour voir les SSID sur Android 6+ACCESS_COARSE_LOCATIONACCESS_NETWORK_STATE
La bibliothèque gère automatiquement la demande de permission runtime
(dialog système) via le hook useWifiScanner.
Compatibilité
| Plateforme | Support | |-----------|---------| | Android | ✅ API 23+ (Android 6.0+) | | iOS | ❌ Non supporté (retourne des données de test) |
Auteur
Benito Tenkam — Licence MIT
