Android 获取IP地址的实现方法

 更新时间:2016年11月03日 11:31:08   投稿:lqh  
这篇文章主要介绍了Android 获取IP地址的实现方法的相关资料,这里提供了具体实现的方法及代码,使用WIFI 和GPRS的思路,需要的朋友可以参考下

Android 获取IP地址

最近做项目,有一个需求是Android设备获取当前IP的功能,经过一番查询资料解决了,记录下实现方法。

1.使用WIFI

首先设置用户权限

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

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

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

其次,代码如下

public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.main);

    

    //获取wifi服务

    WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);

    //判断wifi是否开启

    if (!wifiManager.isWifiEnabled()) {

    wifiManager.setWifiEnabled(true); 

    }

    WifiInfo wifiInfo = wifiManager.getConnectionInfo();   

    int ipAddress = wifiInfo.getIpAddress(); 

    String ip = intToIp(ipAddress); 

    EditText et = (EditText)findViewById(R.id.EditText01);

    et.setText(ip);

  }  

  private String intToIp(int i) {   

    

     return (i & 0xFF ) + "." +   

    ((i >> 8 ) & 0xFF) + "." +   

    ((i >> 16 ) & 0xFF) + "." +   

    ( i >> 24 & 0xFF) ;

   } 

2.使用GPRS

首先,设置用户上网权限

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

其次,代码如下

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())

          {

            return inetAddress.getHostAddress().toString();

          }

        }

      }

    }

    catch (SocketException ex)

    {

      Log.e("WifiPreference IpAddress", ex.toString());

    }

    return null;

  }

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

相关文章

  • 拥抱kotlin之如何习惯使用kotlin高阶函数

    拥抱kotlin之如何习惯使用kotlin高阶函数

    这篇文章主要给大家介绍了关于拥抱kotlin之如何习惯使用kotlin高阶函数的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用kotlin具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-12-12
  • Android实现引导页的圆点指示器

    Android实现引导页的圆点指示器

    这篇文章主要为大家详细介绍了Android实现引导页的圆点指示器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-06-06
  • Android开发TextvView实现镂空字体效果示例代码

    Android开发TextvView实现镂空字体效果示例代码

    这篇文章主要介绍了Android开发TextvView实现镂空字体效果,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-10-10
  • Android studio 出现 Unsupported major.minor version 52.0解决办法

    Android studio 出现 Unsupported major.minor version 52.0解决办法

    这篇文章主要介绍了Android studio 出现 Unsupported major.minor version 52.0解决办法的相关资料,需要的朋友可以参考下
    2016-12-12
  • Android自定义view利用PathEffect实现动态效果

    Android自定义view利用PathEffect实现动态效果

    这篇文章主要为大家详细介绍了Android自定义view利用PathEffect实现动态效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • Android中实现iOS中的毛玻璃效果

    Android中实现iOS中的毛玻璃效果

    为了实现毛玻璃效果,我们需要一组compute kernels(.rs文件中编写),及一组用于控制renderScript相关的Javaapi(.rs文件自动生成为Java类)。 这篇文章主要介绍了Android中实现iOS中的毛玻璃效果,需要的朋友可以参考下
    2017-06-06
  • Android:利用SharedPreferences实现自动登录

    Android:利用SharedPreferences实现自动登录

    本篇文章主要介绍了Android实现自动登录,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-11-11
  • Android入门之ScrollView的使用教程

    Android入门之ScrollView的使用教程

    我们经常可以看到在手机里正在垂直加载一堆的数据,然后过一会加载得内容过多,到了手机的底部了,垂直方向就会出现一个“滚动条”。本文就来通过一些示例和大家介绍下ScrollView(滚动条)的使用,感兴趣的可以了解一下
    2022-11-11
  • Kotlin开发笔记之委托属性与区间(译)

    Kotlin开发笔记之委托属性与区间(译)

    最近在学习kotlin,发现了一些比较重要的知识点,所以下面这篇文章主要给大家介绍了关于Kotlin开发笔记之委托属性与区间的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-12-12
  • Android Studio配置文件路径修改的方法

    Android Studio配置文件路径修改的方法

    这篇文章主要介绍了Android Studio配置文件路径修改的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-04-04

最新评论