Android 获取IP地址的实现方法
作者:lqh 时间:2023-07-30 08:09:34
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;
}
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
标签:Android,IP地址
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
图解Java线程的生命周期
2022-04-12 15:16:10
![](https://img.aspxhome.com/file/2023/2/60822_0s.png)
java统计字符串中指定元素出现次数方法
2022-11-02 16:05:40
![](https://img.aspxhome.com/file/2023/9/78969_0s.jpg)
解析使用enumerator模式简化异步操作的详解
2021-10-08 01:44:54
![](https://img.aspxhome.com/file/2023/4/111124_0s.png)
C#实现简单的天气预报示例代码
2022-03-22 22:52:59
![](https://img.aspxhome.com/file/2023/9/104299_0s.png)
java实现上传图片并压缩图片大小功能
2023-06-14 22:32:35
Android获取分享应用列表详解及实例
2023-11-17 05:47:47
C#使用DirectX.DirectSound播放语音
2022-08-28 01:22:33
![](https://img.aspxhome.com/file/2023/6/91316_0s.jpg)
SpringBoot+Hutool+thymeleaf完成导出Excel的实现方法
2023-09-05 17:39:10
![](https://img.aspxhome.com/file/2023/2/71682_0s.png)
Elasticsearch配置文件示例示范
2021-11-05 22:59:31
如何在Spring中自定义scope的方法示例
2022-12-23 02:17:41
Android中Fragment的基本用法示例总结
2021-11-25 19:00:23
![](https://img.aspxhome.com/file/2023/3/138253_0s.png)
Android带圆形数字进度的自定义进度条示例
2021-10-04 20:20:01
![](https://img.aspxhome.com/file/2023/6/137386_0s.gif)
Spring计时器StopWatch使用示例
2023-05-16 21:23:02
C#学习笔记之适配器模式详解
2021-06-16 14:10:50
![](https://img.aspxhome.com/file/2023/2/129732_0s.jpg)
快速学习六大排序算法
2023-11-02 22:36:19
![](https://img.aspxhome.com/file/2023/5/105175_0s.gif)
SpringBoot瘦身打包部署的实现
2021-09-09 16:54:21
![](https://img.aspxhome.com/file/2023/3/66673_0s.png)
Android Camera2采集摄像头原始数据
2021-06-23 22:55:53
![](https://img.aspxhome.com/file/2023/9/109199_0s.jpg)
利用C#9.0新语法如何提升if语句美感
2021-06-15 12:48:54
C#/VB.NET中从 PDF 文档中提取所有表格
2023-04-07 09:11:03
![](https://img.aspxhome.com/file/2023/7/94557_0s.png)
photoView实现图片多点触控效果
2023-06-21 20:16:03
![](https://img.aspxhome.com/file/2023/7/122057_0s.jpg)