Est-ce que Android fournit une notification d'être à proximité d'un nouveau réseau Wifi? Que l'appareil soit configuré pour se connecter à ce réseau wifi, cela dépend si l'appareil dispose de la configuration wifi définie pour ce réseau wifi particulier, mais est-il possible d'obtenir une notification à chaque fois que vous entrez dans un nouveau réseau wifi?
J'ai vu la classe WifiManager mais les états à l'intérieur de la classe ne semblent pas atteindre ce que j'essaie de faire. Des idées?Android - Notifié lorsqu'un nouveau point d'accès est détecté?
Répondre
Utilisez un BroadcastReceiver
enregistré pour recevoir des intentions avec l'action: WifiManager.NETWORK_STATE_CHANGED_ACTION
.
Dans ce BroadcastReceiver, vous pouvez extraire un objet NetworkInfo de l'intention:
NetworkInfo ni = (NetworkInfo) intent.getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO);
transformons ni.getState()
pour vérifier les connexions/déconnexions des réseaux wifi.
Est-ce ce que vous cherchiez?
Modifier après la réponse
Donc, si vous voulez savoir quels réseaux wifi sont disponibles, utilisez WifiManager.getScanResults() Cela vous donne la liste des points d'accès à proximité à Scanresult
objets. Ceux-ci contiennent le SSID et le BSSID des points d'accès, qui sont respectivement leur nom de réseau et leur adresse MAC.
Vous pouvez obtenir cette information de manière asynchrone en utilisant un BroadcastReceiver
enregistré pour recevoir des intentions avec l'action WifiManager.SCAN_RESULTS_AVAILABLE_ACTION
. Ensuite, vous serez notifié chaque fois que le système effectue un balayage wifi, et vous pouvez vérifier si un nouveau SSID (c'est-à-dire le nom du réseau) est apparu depuis la dernière analyse.
Et enfin, si vous souhaitez scanner plus souvent que le système par défaut, vous pouvez déclencher vous-même des balayages wifi en utilisant WifiManager.startScan()
.
Merci pour la réponse, mais cela ne donne pas l'indication du nouveau réseau wifi fait-il? Je pense qu'il donne des changements dans les états du réseau connecté –
Merci! J'avais besoin de la deuxième solution de scénario. Inscription avec WifiManager.SCAN_RESULTS_AVAILABLE_ACTION. Merci beaucoup, je vais vérifier et j'espère que ça fonctionne de cette façon :) –
Vous devez utiliser un service qui vérifiera le réseau wifi pour un intervalle particulier. – Sandy