`
LoveZhou
  • 浏览: 272388 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android 通用获取Ip的方法(判断手机是否联网的方法)(转)

阅读更多
大家好,我们这一节讲一下,Android获取Ip的一些方法,在我们开发中,有判断手机是否联网,或者想获得当前手机的Ip地址,当然WIFI连接的和

我们3G卡的Ip地址当然是不一样的.

首先我尝试了如下方法:

view plaincopy to clipboardprint?
WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);  
WifiInfo wifiInfo = wifiManager.getConnectionInfo();  
int ipAddress = wifiInfo.getIpAddress(); 
WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
int ipAddress = wifiInfo.getIpAddress();

但是获得的居然是一个整数,我尝试了用些数学方法都没有成功!,所以这种方法不可取!

最后查了一些资料,发现如下方法是比较通用的,我尝试了WIFI和G3卡,都获取了争取的Ip地址:代码如下:

view plaincopy to clipboardprint?
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(LOG_TAG, ex.toString());  
    }  
    return null;  

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(LOG_TAG, ex.toString());
    }
    return null;
}

当我的手机处于飞行状态是,获得Ip地址为空,刚好符合要求!!!

希望对大家有所帮助!谢谢~

本文转自http://blog.csdn.net/Android_Tutor/archive/2010/05/10/5576544.aspx
分享到:
评论

相关推荐

    Android高手进阶教程与Android基础教程

    Android高手进阶教程之----Android 通用获取Ip的方法(判断手机是否联网的方法)!!!.doc Android高手进阶教程之----Android 在一个应用中如何启动另外一个已安装的应用!!!.doc Android高手进阶教程之----Android 中...

    android高手进阶教程 完整版 pdf

    #### 十一、Android通用获取IP的方法(判断手机是否联网的方法) - **获取IP地址**: - 通过`ConnectivityManager`获取网络信息。 - 根据网络类型获取对应接口的IP地址。 - **判断手机是否联网**: - 使用`...

    Android高手进阶教程.pdf

    - **通用获取IP的方法**:提供一种判断设备是否联网的方法,并获取IP地址。 - **启动另一个已安装的应用**:介绍如何在一个应用中启动另一个已安装的应用。 - **数据库SQLiteDatabase的使用**:介绍如何使用SQLite...

    RK356X android11 移远EC20 modem支持

    7. **兼容性**:虽然补丁主要针对RK3568,但提到其他平台也可以参考,这意味着移植方法可能具有一定的通用性。开发者可能已经考虑了Rockchip其他平台的差异,确保了补丁的可移植性。 综上所述,"RK356X android11 ...

    Android在数字机顶盒技术发展介绍

    此外,由于Android在非手机系统上的应用,促进了OESF这样的非营利组织的成立,它们的目的是协同开发通用的架构或平台。这样的组织推动了Android在机顶盒等非手机领域的应用,并且帮助厂商应对从传统电视到智能电视的...

    Android_jingdiancode

    通过深入研究"Android_jingdiancode"中的源码,开发者不仅能学习到具体的游戏实现,还能掌握Android平台上的通用编程技巧和最佳实践。对于想要提升Android游戏开发技能的程序员来说,这是一个宝贵的资源。

    1-手机app控制例程.zip

    它集成了完整的TCP/IP协议栈,支持Wi-Fi标准的802.11 b/g/n,可以轻松地嵌入到各种硬件项目中,实现物联网设备的联网功能。ESP8266具有丰富的GPIO接口,可与各种传感器和执行器连接,实现数据采集和设备控制。 **...

    中国联通LTE-V2X模组白皮书.pdf

    * 通用功能:支持基本的车联网服务,例如Vehicle-to-Everything(V2X)通信、数据采集和传输等。 * 增强功能:支持基于 LTE 技术的增强功能,例如高速数据传输、低延迟通信等。 * 管理功能:支持模组的远程管理和...

    基于物联网的智能家居控制系统设计 (5).pdf

    控制中心通过GPRS通信技术与外界的智能手机或平板电脑相连接,用户可以下载并安装Android应用程序来远程获取家庭信息,并发送控制指令。 智能家居控制系统的设计考虑到了用户体验和系统的稳定性,并且具有良好的...

    USR-WIFI232-L

    该特性使得设备可以便捷地与其他设备(如智能手机、平板电脑等)连接,特别适合于Android设备的连接,与Ad-Hoc模式有明显区别。 2.10参数设置章节说明了用户可以通过串口或网络配置该模块,这与USR-WIFI232-a/b/c/d...

    嵌入式Linux应用程序开发标准教程7-12

    6. **网络编程**:许多嵌入式系统需要联网功能,因此掌握TCP/IP协议栈、套接字编程以及网络服务的实现是必要的。 7. **图形用户界面**:虽然许多嵌入式应用可能没有传统意义上的GUI,但一些设备如智能设备和工业...

    最新通信技术毕业论文题目精选.docx

    5. **Android摄像头的VLC研究**:智能手机摄像头可以作为VLC的发射和接收端,扩展了VLC的应用场景。 6. **DVB-S2(数字视频广播-第二代卫星)**:这是一种卫星广播标准,用于提供高清电视服务和宽带互联网接入,...

    嵌入式Linux应用程序开发详解-基于ARM

    嵌入式Linux应用程序开发在当前科技领域中占据着重要的地位,尤其在基于ARM架构的硬件平台上,其应用广泛,从物联网设备到智能手机,再到工业控制系统,都有它的身影。本资料详细探讨了如何在嵌入式环境中开发Linux...

    esp8266-12f

    此外,ESP8266还集成了Wi-Fi MAC/BB/RF/PA/LNA等功能,使得这款模块不仅能够作为一个独立的网络控制器使用,还可以为现有的设备增加联网功能。 **主要特点**: - 支持标准的IEEE 802.11 b/g/n协议,完整的TCP/IP...

Global site tag (gtag.js) - Google Analytics