Android手机获取IP地址的两种方法

 更新时间:2015年05月06日 09:13:55   投稿:junjie  
这篇文章主要介绍了Android手机获取IP地址的两种方法,本文分别讲解了WIFI和GPRS两种情况下各自获取手机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; 
    }
 

相关文章

  • Android 自定义View之倒计时实例代码

    Android 自定义View之倒计时实例代码

    这篇文章主要介绍了Android 自定义View之倒计时实例代码的相关资料,大多数app在注册的时候,都有一个获取验证码的按钮,点击后,访问接口,最终用户会收到短信验证码。为了不多次写这个获取验证码的接口,下面将它自定义成一个view,方便使用,需要的朋友可以参考下
    2017-04-04
  • Android 文件存储与SharedPreferences存储方式详解用法

    Android 文件存储与SharedPreferences存储方式详解用法

    SharedPreferences是安卓平台上一个轻量级的存储类,用来保存应用的一些常用配置,比如Activity状态,Activity暂停时,将此activity的状态保存到SharedPereferences中;当Activity重载,系统回调方法onSaveInstanceState时,再从SharedPreferences中将值取出
    2021-10-10
  • android微信授权获取用户个人信息代码

    android微信授权获取用户个人信息代码

    大家好,本篇文章主要讲的是android微信授权获取用户个人信息代码,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12
  • 基于Android Kotlin高频面试题解析

    基于Android Kotlin高频面试题解析

    这篇文章主要为大家介绍了基于Android Kotlin高频面试题解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07
  • 手机/移动前端开发需要注意的20个要点

    手机/移动前端开发需要注意的20个要点

    本文主要介绍了手机/移动前端开发需要注意的20个要点,具有很好的参考价值。下面跟着小编一起来看下吧
    2017-03-03
  • Android 手机浏览器调试使用Chrome进行调试实例详解

    Android 手机浏览器调试使用Chrome进行调试实例详解

    这篇文章主要介绍了Android 手机浏览器调试使用Chrome进行调试实例详解的相关资料,这里提供了实例,需要的朋友可以参考下
    2016-12-12
  • 分析Android Choreographer源码

    分析Android Choreographer源码

    Choreographer的作用主要是配合Vsync,给上层App的渲染提供一个稳定的Message处理的时机,也就是Vsync到来的时候,系统通过对Vsync信号周期的调整,来控制每一帧绘制操作的时机
    2021-06-06
  • Android Webview与ScrollView的滚动兼容及留白处理的方法

    Android Webview与ScrollView的滚动兼容及留白处理的方法

    本篇文章主要介绍了Android Webview与ScrollView的滚动兼容及留白处理的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • Android开发之MediaPlayer基本使用方法详解

    Android开发之MediaPlayer基本使用方法详解

    这篇文章主要介绍了Android开发之MediaPlayer基本使用方法,结合实例形式较为详细的分析了MediaPlayer中的常用函数与基本使用技巧,需要的朋友可以参考下
    2017-05-05
  • Android Flutter实现评分组件的示例代码

    Android Flutter实现评分组件的示例代码

    在很多应用中,我们都需要收集用户的评分,比如商品满意度、配送满意度、应用使用体验等等。本文就利用flutter_rating_bar实现简易的评分组件,感兴趣的可以
    2022-11-11

最新评论