Android 获取机器IP地址

一、流程图

erDiagram
    Developer -->> Junior: 指导
    Junior -->> Android: 请求获取IP地址
    Android -->> Network: 查询IP地址
    Network -->> Android: 返回IP地址
    Android -->> Junior: 返回IP地址

二、步骤

步骤 操作
1 在 AndroidManifest.xml 文件中添加网络权限:<br><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><br>这个权限用于获取网络状态。
2 在需要获取IP地址的地方调用相关方法。

三、具体操作

步骤1:添加网络权限

在 AndroidManifest.xml 文件的<manifest>标签中添加以下代码:

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

这个权限用于获取网络状态。

步骤2:获取IP地址

在需要获取IP地址的地方调用以下方法:

private String getIpAddress() {
    String ipAddress = "";
    try {
        // 获取Wifi网络信息
        WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
        WifiInfo wifiInfo = wifiManager.getConnectionInfo();

        // 获取IP地址
        int ip = wifiInfo.getIpAddress();
        ipAddress = intToIp(ip);
    } catch (Exception e) {
        e.printStackTrace();
    }
    return ipAddress;
}

private String intToIp(int ip) {
    return ((ip & 0xFF) + "." +
            ((ip >> 8) & 0xFF) + "." +
            ((ip >> 16) & 0xFF) + "." +
            ((ip >> 24) & 0xFF));
}

这段代码通过WifiManager获取当前手机连接的Wifi网络信息,并从中获取IP地址。

代码解释

  1. WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);:获取WifiManager对象,用于获取Wifi网络信息。
  2. WifiInfo wifiInfo = wifiManager.getConnectionInfo();:获取当前连接的Wifi网络信息。
  3. int ip = wifiInfo.getIpAddress();:获取IP地址的十进制表示。
  4. ipAddress = intToIp(ip);:将十进制表示的IP地址转换成常见的xxx.xxx.xxx.xxx形式。

四、总结

通过以上步骤,我们可以在Android应用中获取到当前设备的IP地址。首先,在AndroidManifest.xml文件中添加网络权限,然后在需要获取IP地址的地方调用相应的方法即可。这样,我们就可以轻松地获取到设备的IP地址了。