Comme le titre l'indique ... J'essaie de pouvoir obtenir l'IP de l'iface wifi quand il est configuré comme hotspot. Idéalement, j'aimerais trouver quelque chose qui fonctionne pour tous les téléphones.comment obtenir l'adresse IP du hotspot wifi dans Android?
Bien sûr, le WifiManager est inutile lorsqu'il s'agit d'obtenir des informations de l'AP.
Heureusement, je suis en mesure d'obtenir les adresses IP de toutes les interfaces en faisant ceci:
public String getLocalIpAddress() {
try {
for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) {
NetworkInterface intf = en.nextElement();
for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();) {
InetAddress inetAddress = enumIpAddr.nextElement();
if (!inetAddress.isLoopbackAddress()) {
Log.d("IPs", inetAddress.getHostAddress());
}
}
}
} catch (SocketException ex) {
Log.e(LOG_TAG, ex.toString());
}
return null;
}
Ce morceau de code imprimera tous les IP de toutes les interfaces (hotspot wifi inclus). Le problème principal est que je ne trouve pas un moyen d'identifier l'interface WiFi. C'est un problème car certains téléphones ont plusieurs interfaces (WiMax, etc). Voilà ce que j'ai essayé jusqu'à présent:
- Filtrage par le nom d'affichage wifi iface: ce n'est pas une bonne approche parce que les changements de nom d'affichage d'un dispositif à un autre (wlan0, eth0, wl0.1, etc.) .
- Filtrage par son adresse mac: presque fonctionne, mais sur certains appareils l'iface du hotspot n'a pas d'adresse MAC (iface.getHardwareAddress() renvoie null) ... donc pas une solution valide.
Des suggestions?
Je suis désolé mais ce n'est pas la solution. Comme je l'ai déjà dit, WifiManager est inutile lorsque l'iface est en mode AP. Android "pense" que le Wifi est désactivé. D'autre part, j'ai essayé quelque chose de similaire à la solution que vous fournissez, mais en utilisant l'adresse MAC au lieu de l'adresse IP. Mais comme je l'ai déjà souligné, cela ne fonctionne pas. Pour une raison quelconque, l'adresse mac de l'iface wifi est nulle (sur certains appareils). – sirlion
@sirlion, est-ce que ACCESS_WIFI_STATE est dans votre manifeste? – tenorsax
Oui, ça l'est. Croyez-moi, cette approche ne fonctionne pas. Vous pouvez l'essayer si vous voulez ..:/ – sirlion