Android 获取IP地址的实现方法
程序员文章站
2024-03-03 18:59:58
android 获取ip地址
最近做项目,有一个需求是android设备获取当前ip的功能,经过一番查询资料解决了,记录下实现方法。
1.使用wifi
首先设置用户权...
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; }
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!