Android 通用获取Ip的方法 编辑文档
学分 +2
大家好,我们这一节讲一下,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 en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) {
NetworkInterface intf = en.nextElement();
for (Enumeration 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 en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) {
NetworkInterface intf = en.nextElement();
for (Enumeration 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地址为空,刚好符合要求!!!
希望对大家有所帮助!谢谢~
分享到:
相关推荐
在Android平台上获取设备IP地址是一项常见的任务,尤其在开发网络相关的应用程序时。"GetIpAddress.zip"这个压缩包可能包含了一个示例项目,演示了如何在Android应用中获取设备的IP地址。下面我们将深入探讨Android...
public static String getLocalIpAddress() { try { for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements(); ) { NetworkInterface intf = en.nextElement();...
在Android平台上,显示手机的IP信息涉及到网络编程和UI设计两个关键领域。下面将详细讲解如何在Android应用中实现这一功能。 首先,我们需要获取手机的IP信息。在Android中,可以使用`java.net.NetworkInterface`和...
本文将深入探讨如何在Android平台上利用UDP进行广播发送,以获取服务器的IP地址。 首先,我们需要了解UDP广播的工作原理。UDP广播是将数据包发送到特定的网络地址,即所有网络设备的广播地址,而不仅仅是一个单一的...
使用这些工具发送GET请求,并处理响应以获取IP地址。 6. **更新UI**: 当获取到IP地址后,将其显示在预先定义的TextView中。可以使用`setText()`方法更新TextView的内容。 7. **异常处理**: 编程过程中,需要...
"Android开发准确获取手机IP地址的两种方式" Android开发中,获取手机IP地址是一个非常重要的步骤,特别是在进行微信支付、后台接口调用等操作时,需要准确获取手机IP地址。那么,如何在Android开发中准确获取手机...
android:id="@+id/get_ip_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="onGetIPClick" /> ``` 4. **事件监听与处理**: - 在Java代码中,我们需要为...
在提供的`getip`文件中,可能包含了实现这些功能的源码和相关配置。请确保在使用这些代码时,遵循Android的权限管理规则,例如请求`ACCESS_WIFI_STATE`和`INTERNET`权限,以避免运行时权限问题。 总之,获取Android...
在"GetIP"这个项目中,开发者可能已经实现了上述逻辑,并提供了一个简单的用户界面展示IP地址。通过运行这个示例,开发者可以学习如何在自己的应用中集成这个功能。记住,测试时确保设备连接到网络,否则可能无法...
在标题“android 设置IP地址”和描述“android app设置IP地址源码”中,我们可以理解这个任务是关于如何在Android应用中编写代码来设定设备的网络接口(如Wi-Fi或以太网)的IP地址。以下是一些相关的知识点: 1. **...
public String getLocalIpAddress() { try { for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) { NetworkInterface intf = en.nextElement(); for ...
public String getLocalIpAddress() { try { for (NetworkInterface intf : NetworkInterface.getNetworkInterfaces()) { for (InetAddress inetAddress : intf.getInetAddresses()) { if (!inetAddress....
在Android平台上,`ping`命令通常用于测试网络连通性,检查设备能否与特定IP地址进行通信。在Android应用开发中,我们有时需要实现类似的功能,例如批量ping多个IP地址来检测网络状况或者验证服务器可用性。这个...
Android application for fetching network IP address of the android device Create new android project and add below code changes on MainActivity.java
同时,由于Android设备可能有多个网络接口,`getLocalIpAddress()`方法会返回一个可用的IPv4地址,这在大多数情况下是足够的。然而,如果你的网络环境复杂,可能需要进一步调整以适应特定需求。
public static String getLocalIpAddress() { try { for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) { NetworkInterface intf = en.nextElement(); ...
Android开发获取手机内网IP地址与外网IP地址的方法与源码实例 Android开发中,获取手机内网IP地址和外网IP地址是非常重要的技术点,对于Android应用开发者来说,获取当前Android设备所使用的网络IP地址的场景是...
public String getLocalIpAddress() { try { for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements(); ) { NetworkInterface ni = en.nextElement(); if (ni....
Android 获取连接热点的 IP 地址的方法 Android 获取连接热点的 IP 地址的方法主要涉及到 Android 中的 WifiManager 和 WifiInfo 两个类。WifiManager 用于管理 Wi-Fi 连接,包括启用、禁用 Wi-Fi 和获取当前 Wi-...