用WifiManager 方式来获取:

public String getIp(){

//获取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);
return ip;

}

private String intToIp(int i) {

return (i & 0xFF ) + "." +
((i >> 8 ) & 0xFF) + "." +
((i >> 16 ) & 0xFF) + "." +
( i >> 24 & 0xFF) ;
}

当然要加权限

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>

//结束

另外一种既是java的获取方式

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

//需要添加的权限

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>

<uses-permission android:name="android.permission.INTERNET"/>

<uses-permission android:name="android.permission.WAKE_LOCK"/>

<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>

更多相关文章

  1. Android 获得屏幕宽高的三种方式
  2. 如何修改Android5.1系统USB连接方式默认MTP
  3. Android 日历方式显示的日期选择组件
  4. Android 6.0 动态权限申请实例
  5. Android四种点击事件和五中存储方式
  6. android如何设置adb root权限

随机推荐

  1. 用Dbus与android的bluz通信
  2. android按键静音键功能实现
  3. android 开发之旅
  4. android基本动画,代码构建动画
  5. 安卓开发36:layout对齐属性总结
  6. 高手速成android开源项目【tool篇】
  7. Android原生游戏开发:使用JustWeEngine开
  8. Android之进度条控件和常用资源分类总结
  9. Android画图学习总结(五)——Paint
  10. 一个关于Android视频流的Github项目