当前位置: 首页 > news >正文

网站后台中文模板网络教育平台

网站后台中文模板,网络教育平台,网站搜索要怎么做,乐陵新闻最新消息今天Android wifi列表中去自身的热点 一、前言 Android wifi列表中能搜索到自身的热点wifi? 正常手机上都不会出现这个问题;可能是系统底层已经做了过滤处理。 现实开发中Android设备的Wifi能搜索到自身热点也可能会存在。 比如基于两个单独的wifi双模组硬…

Android wifi列表中去自身的热点

一、前言

Android wifi列表中能搜索到自身的热点wifi?
正常手机上都不会出现这个问题;可能是系统底层已经做了过滤处理。

现实开发中Android设备的Wifi能搜索到自身热点也可能会存在。
比如基于两个单独的wifi双模组硬件在设备上运行就有可能出现这个问题;
之前同一个硬件上的双模组wifi硬件都是没有这个问题的。

双模组wifi是为了更好支持wifi和热点隔离的硬件,

Android 双模组的情况可能会存在wifi列表中搜索到自己的热点名称是可以正常连接,
但是设备重启后wifi会处于一直连接和断开的状态。

不确定底层是否可以优化处理这个热点wifi显示的问题;
但是应用上也是可以过滤显示的;
应用扫描到后,不显示到自身的热点wifi,这样也可以避免连接和后续的问题。

Android wifi列表中去自身的热点wifi的关键是判断热点的mac地址和wifi的BSSID是否一致。

这里记录一下,平时不一定用得到!

二、从扫描的Wifi列表中去除自身热点Wifi的实现

1、获取节点的mac地址代码实现

输入节点名称即可获取mac地址。

//获取XXX 节点MAC地址public static String getHardwareAddress(String name) {Enumeration<NetworkInterface> interfaces = null;try {interfaces = NetworkInterface.getNetworkInterfaces();} catch (SocketException e) {e.printStackTrace();}String hardWareAddress = null;NetworkInterface iF = null;if (interfaces == null) {return null;}while (interfaces.hasMoreElements()) {iF = interfaces.nextElement();try {if (iF.getName().equals(name)) {hardWareAddress = bytesToString(iF.getHardwareAddress());break;}} catch (SocketException e) {e.printStackTrace();}}return hardWareAddress;}private static String bytesToString(byte[] bytes) {if (bytes == null || bytes.length == 0) {return null;}StringBuilder buf = new StringBuilder();for (byte b : bytes) {buf.append(String.format("%02X:", b));}if (buf.length() > 0) {buf.deleteCharAt(buf.length() - 1);}return buf.toString();}

上面的就是获取节点信息的代码。节点其他信息有需求的也可以获取。

2、wifi列表中过滤热点wifi的代码

  final List<AccessPoint> accessPoints = mWifiTracker.getAccessPoints();if(mWifiManager.getWifiApState() == WifiManager.WIFI_AP_STATE_ENABLED){//如果热点开了并且WiFi扫描到了本机自己的热点的话去掉String localHotspotMac = EthernetUtil.getHardwareAddress("ap0");LogUtil.debug("ap0 mac = " + localHotspotMac);if(localHotspotMac == null || localHotspotMac.isEmpty()){localHotspotMac = EthernetUtil.getHardwareAddress("wlan1");LogUtil.debug("wlan mac = " + localHotspotMac);}int localHotspotIndex = -1;for (int i = 0; i < accessPoints.size(); i++) {AccessPoint accessPoint = accessPoints.get(i);if(accessPoint.getBssid() != null && accessPoint.getBssid().equalsIgnoreCase(localHotspotMac)){localHotspotIndex = i;LogUtil.debug("accessPoint.getSsidStr()--" + accessPoint.getSsidStr() +" accessPoint.getBssid()--"+accessPoint.getBssid() + localHotspotMac);break;}}if(localHotspotIndex >= 0){accessPoints.remove(localHotspotIndex);LogUtil.debug("accessPoints size after remove:" + accessPoints.size());}}

Android设备热点正常节点都是ap0,但是也会有设备有的wlan1;
也有的两个节点都用的情况,比如热点+投屏;
所以启动哪个节点是热点写死在上面就行,不需要判断两个节点的逻辑。

上面举例的是SettingsLib获取wifi列表的方式获取的wifi信息对象 AccessPoint。

如果是wifi扫描的普通对象ScanResult 也是有BSSID这个信息的。

http://www.sczhlp.com/news/90206/

相关文章:

  • 网站如何吸引用户网站建设价格组成
  • 新注册公司网站免费怎么做减少WordPress跳转
  • 中小企业建设网站策略wordpress注册邮件自定义
  • Codeforces Round 1049 (Div. 2) E
  • ES深度分页优化
  • 厚街仿做网站课程网站开发开题报告
  • 网站导航栏下拉框怎么做咸阳学校网站建设联系电话
  • python编程网站网站流量查询 优帮云
  • 网站建设找哪家公司好上海移动官网网站建设
  • 免费网站建设步骤上海浦东新区娱乐场所最新通知
  • 北京网站建设laitangwordpress名字修改
  • 企业网站优化咨询邢台新增确诊病例轨迹
  • 网站地址结构安徽网站建设科技
  • 如何建一个论坛网站工商企业年报查询入口
  • 百度推广整体优化网站wordpress添加新菜单到导航
  • 青岛住房和城乡建设 网站福建志佳建设工程发展有限公司网站
  • 2025年8月国产数据库大事记:东莞银行1078万采购OceanBase、821万采购腾讯TDSQL,2025上半年达梦净利2亿、金仓净利润飙升……
  • VSCode安装Jupyter的常见问题
  • 网站备案要关多久建立有效的()
  • 安庆市大观区城乡建设局网站网站推广app
  • 装修网站是怎么建设的大连如是科技
  • 国家和城乡建设部网站首页青青网站怎么做
  • 胶州网站优化做网站需要多大的空间
  • 网站建设学什么软件seo辅助工具
  • 网站优化就是seo上海网页优化软件
  • 山东网站建设公司电话app定制开发公司上班怎么样
  • 寺庙网站开发可以做商品砍价的网站
  • 批量设置Excel样式格式(如:纸张大小,排版,字体等)+ 支持windows系统
  • 张瑜:牛市进程之十大观察指标 - Leone
  • QT-控件使用-获取lable标签宽高尺寸设置图片