Comment obtenir l'adresse IP du réseau cellulaire lorsque le périphérique est connecté à WiFi dans Android

Est-ce qu'il y a un chemin à travers lequel je peux obtenir l'adresse IP du réseau WiFi et du réseau cellulaire dans Android simultanément. J'ai essayé d'utiliser de nombreux exemples, mais j'ai pu obtenir l'adresse du réseau WiFi seulement et non du réseau cellulaire. J'ai activé le réseau WiFi et le réseau cellulaire et Le périphérique a un accès Internet via WiFi.

Voici le code que j'utilise pour obtenir l'adresse IP:

  • Comment mettre un "-" dans le fichier string.xml
  • L'assistant Eclipse pour créer une nouvelle activité Android ne fonctionne pas
  • Comment désactiver / supprimer l'étiquette d'activité Android et la barre d'étiquettes?
  • Support de l'application Android CDMA devices
  • Architecture d'application Android - où mettre le code d'appel de l'API REST?
  • Accès au flux multimédia Android pour la visualisation audio
  • String ipAddress = null; 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()) { ipAddress = inetAddress.getHostAddress().toString(); Log.i("Here is the Address",ipAddress); } } } } catch (SocketException ex) { } 

    Est-il possible d'obtenir l'adresse IP du réseau cellulaire lorsque le périphérique est connecté à WiFi. Si oui, comment est-ce possible?

  • Obtention programmée des détails de la passerelle et du masque de sous-réseau
  • 5 Solutions collect form web for “Comment obtenir l'adresse IP du réseau cellulaire lorsque le périphérique est connecté à WiFi dans Android”

    Chaque fois que vous activez WiFi sur votre appareil et que vous disposez d'une connexion active à un réseau WiFi, vos données mobiles sont temporairement désactivées , peu importe si vous l'avez activé manuellement ou non. Le réglage «Données mobiles activé / désactivé» n'est pris en compte que si vous n'avez aucune connexion Wi-Fi active.

    Certaines ROM personnalisées ont une option pour maintenir la connexion mobile en vie lorsque vous vous connectez à un WiFi (alors, si vous perdez votre connexion WiFi, elle passe au mobile plus rapidement), mais la connexion Wi-Fi est utilisée.

    Conclusion: Vous ne pouvez pas obtenir les deux adresses IP, car vous ne pouvez pas utiliser WiFi et le réseau mobile (et si vous le pouvez, vous utilisez uniquement WiFi activement)

    Essayez cela peut-être utile …

    Pour l'adresse IP mobile …..

      public static String getMobileIPAddress() { try { List<NetworkInterface> interfaces = Collections.list(NetworkInterface.getNetworkInterfaces()); for (NetworkInterface intf : interfaces) { List<InetAddress> addrs = Collections.list(intf.getInetAddresses()); for (InetAddress addr : addrs) { if (!addr.isLoopbackAddress()) { return addr.getHostAddress(); } } } } catch (Exception ex) { } // for now eat exceptions return ""; } 

    Pour l'adresse IP Wifi ….

      public String getWifiIPAddress() { WifiManager wifiMgr = (WifiManager) getSystemService(WIFI_SERVICE); WifiInfo wifiInfo = wifiMgr.getConnectionInfo(); int ip = wifiInfo.getIpAddress(); return Formatter.formatIpAddress(ip); } 

    Incluez cette permission dans votre menant …

     <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 

    Utiliser comme ça ….

     String wifiIp = getWifiIPAddress(); String mobileIp = getMobileIPAddress(); 

    Vous obtenez une sortie comme celle-ci ……

    O

    Possiblement un document de Comment obtenir l'adresse IP de l'appareil

     WifiManager wm = (WifiManager) getSystemService(WIFI_SERVICE); String ip = Formatter.formatIpAddress(wm.getConnectionInfo().getIpAddress()); 

    Utilisez ce qui suit dans votre code java:

      WifiManager wifiMgr = (WifiManager) getSystemService(WIFI_SERVICE); WifiInfo wifiInfo = wifiMgr.getConnectionInfo(); int ip = wifiInfo.getIpAddress(); String ipAddress = Formatter.formatIpAddress(ip); 

    N'oubliez pas d'ajouter cette autorisation dans votre fichier Manifest Android:
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

    Source: Obtenez mon adresse ip wifi Android

    J'espère que cela aide! Bonne chance!

    Vous n'obtiendrez pas d'IP pour une connexion cellulaire lorsque votre wifi est activé et connecté. C'est parce que le système n'utilise pas la connexion de données cellulaires pour des raisons d'économie de batterie. Bien que vous puissiez les activer simultanément, le système n'utilisera qu'un à la fois. C'est comme: les deux sont autorisés, mais un seul est utilisé.

    Il n'y a qu'un seul exemple que je puisse penser: c'est quand vous êtes connecté via wifi au réseau sans accès à Internet, alors votre téléphone se connectera via le téléphone cellulaire également.

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.