Android 获取IP地址的实现方法
Android获取IP地址
最近做项目,有一个需求是Android设备获取当前IP的功能,经过一番查询资料解决了,记录下实现方法。
1.使用WIFI
首先设置用户权限
<uses-permissionAndroid:name="android.permission.ACCESS_WIFI_STATE"></uses-permission> <uses-permissionandroid:name="android.permission.CHANGE_WIFI_STATE"></uses-permission> <uses-permissionandroid:name="android.permission.WAKE_LOCK"></uses-permission>
其次,代码如下
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//获取wifi服务
WifiManagerwifiManager=(WifiManager)getSystemService(Context.WIFI_SERVICE);
//判断wifi是否开启
if(!wifiManager.isWifiEnabled()){
wifiManager.setWifiEnabled(true);
}
WifiInfowifiInfo=wifiManager.getConnectionInfo();
intipAddress=wifiInfo.getIpAddress();
Stringip=intToIp(ipAddress);
EditTextet=(EditText)findViewById(R.id.EditText01);
et.setText(ip);
}
privateStringintToIp(inti){
return(i&0xFF)+"."+
((i>>8)&0xFF)+"."+
((i>>16)&0xFF)+"."+
(i>>24&0xFF);
}
2.使用GPRS
首先,设置用户上网权限
<uses-permissionandroid:name="android.permission.INTERNET"></uses-permission>
其次,代码如下
publicStringgetLocalIpAddress()
{
try
{
for(Enumeration<NetworkInterface>en=NetworkInterface.getNetworkInterfaces();en.hasMoreElements();)
{
NetworkInterfaceintf=en.nextElement();
for(Enumeration<InetAddress>enumIpAddr=intf.getInetAddresses();enumIpAddr.hasMoreElements();)
{
InetAddressinetAddress=enumIpAddr.nextElement();
if(!inetAddress.isLoopbackAddress())
{
returninetAddress.getHostAddress().toString();
}
}
}
}
catch(SocketExceptionex)
{
Log.e("WifiPreferenceIpAddress",ex.toString());
}
returnnull;
}
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
热门推荐
10 病人祝福语老师寄语简短
11 新娘生孩子祝福语简短
12 婆婆66岁祝福语简短
13 今天孩子高考祝福语简短
14 送彩票生日祝福语简短
15 分别祝福语简短情话英文
16 画室揭牌仪式祝福语简短
17 女友妈妈生日祝福语简短
18 离别赠言离职祝福语简短