Android 以太网子网掩码长度 bug 修复

简介: Android 以太网子网掩码长度 bug 修复

前言


这个bug说起来还是我自己搞出来的,之前每次版本迁徙都是参考修改记录同步移植以太网这块,


所以从一开始就有这个问题。

mStaticIpConfiguration.ipAddress = new LinkAddress(InetAddress.getByName(text), 24);


每次应用层设置都是固定值 24 ,导致 framework 接收到的就是错误值。正确的做法为根据设置的


子网掩码值去计算对应长度。


子网掩码长度对照表


sTm9PI.png


关于IP地址,子网掩码,子网前缀长度,路由表的的算法介绍可参考这篇

IP地址,子网掩码,子网前缀长度,路由表的的算法


解决办法


编写算法计算子网掩码长度

private int calcNetMaskInt(String netMask) {
  Log.d("cnetMask", "netMask =" + netMask);
  StringBuffer sbf;
  String str;
  int prefixLength = 0, count = 0;       
  String[] split = netMask.split("\\.");
  for (int n = 0; n < split.length; n++) {
    sbf = toBin(Integer.parseInt(split[n]));
    str = sbf.reverse().toString();
    //Log.e("net", split[n] + "===" + str);
    count = 0;
    for (int i = 0; i < str.length(); i++) {
      i = str.indexOf('1', i);  
      if (i == -1) {
        break;
      }
      count++;  
    }
    prefixLength += count;
  }
  Log.e("cnetMask", "netMask prefixLength=" + prefixLength);
  return prefixLength;
}


参考

java实现子网掩码转换为网络标识位

目录
相关文章
|
3月前
|
Android开发
【Bug】Android resource linking failed和error: failed linking references.
【Bug】Android resource linking failed和error: failed linking references.
|
21天前
|
监控 Java Android开发
探究Android应用开发中的内存泄漏检测与修复
在移动应用的开发过程中,优化用户体验和提升性能是至关重要的。对于Android平台而言,内存泄漏是一个常见且棘手的问题,它可能导致应用运行缓慢甚至崩溃。本文将深入探讨如何有效识别和解决内存泄漏问题,通过具体案例分析,揭示内存泄漏的成因,并提出相应的检测工具和方法。我们还将讨论一些最佳实践,帮助开发者预防内存泄漏,确保应用稳定高效地运行。
|
3月前
|
网络协议 测试技术 网络性能优化
Android系统 以太网吞吐量和丢包测试
Android系统 以太网吞吐量和丢包测试
102 1
|
3月前
|
Android开发
Android热补丁动态修复实践,腾讯&字节&网易&华为Android面试题分享
Android热补丁动态修复实践,腾讯&字节&网易&华为Android面试题分享
|
3月前
|
Java Android开发
Android 9在连接以太网情况下 还能连接WiFi
Android 9在连接以太网情况下 还能连接WiFi
39 0
|
3月前
|
Java Android开发 开发者
rk3399 android以太网和wifi共存
rk3399 android以太网和wifi共存
111 0
|
Android开发
Bug日志(四)——Android 防止多次点击(另解决多个列表子项点击)
在用户使用 应用的时候,经常会出现点击过快且多次点击同一控件的情况, 一方面这是因为应用或手机当前有些卡顿,网络卡啥的 另一方面也可能是由于很多应用并没有设置按钮点击时的 selector 或者其它按钮响应方式(例如点击按钮时按钮放大,常见于游戏),导致用户误认为没有点击到当前按钮。(比如使用selector再点击后更换背景颜色,图片等等)
|
XML Android开发 数据格式
Bug日志(二)-Android网路请求图片地址图片不显示
Bug日志(二)-Android网路请求图片地址图片不显示
|
Java API Android开发
Android10.0(Q) MTK平台增加以太网静态IP功能
Android10.0(Q) MTK平台增加以太网静态IP功能
726 0
|
2天前
|
JavaScript 前端开发 Java
FFmpeg开发笔记(四十七)寒冬下安卓程序员的几个技术转型发展方向
IT寒冬使APP开发门槛提升,安卓程序员需转型。选项包括:深化Android开发,跟进Google新技术如Kotlin、Jetpack、Flutter及Compose;研究Android底层框架,掌握AOSP;转型Java后端开发,学习Spring Boot等框架;拓展大前端技能,掌握JavaScript、Node.js、Vue.js及特定框架如微信小程序、HarmonyOS;或转向C/C++底层开发,通过音视频项目如FFmpeg积累经验。每条路径都有相应的书籍和技术栈推荐,助你顺利过渡。
13 3
FFmpeg开发笔记(四十七)寒冬下安卓程序员的几个技术转型发展方向