WLAN 基础架构功能

Android WLAN 框架可帮助用户连接到优质 WLAN 网络(在有可用 WLAN 网络且需要连接到这类网络的情况下)。Android 可通过多种方式来实现这一点:

  • 打开网络通知:在有可用的优质开放 WLAN 网络时通知用户
  • 自动开启 WLAN:当用户靠近之前保存的某个网络时,重新启用 WLAN
  • 连接到开放网络:自动将用户连接到优质开放 WLAN 网络
  • 标记:显示与可用网络的质量相关的信息

上述功能均通过 AOSP 代码实现,您无需明确启用或配置这些功能。

打开网络通知

只要出现以下情况,“打开网络通知”功能便会向用户发出通知:

  • WLAN 已启用
  • 设备未连接到 WLAN 网络
  • 开放且 RSSI 足够高(与内部 WLAN 选择算法使用的 RSSI 阈值相同)的 WLAN 网络时

用户可在设置应用中通过以下路径启用或停用该功能:

设置 > 网络和互联网 > WLAN > WLAN 偏好设置 > 打开网络通知

图 1. 打开网络通知功能

自动开启 WLAN

用户可能会出于各种原因(例如,连接到不稳定的网络时)停用 WLAN,但在回家后可能忘记重新启用 WLAN,从而导致体验不佳(例如,无法控制家居自动化设备)。“自动开启 WLAN”功能解决了这一问题:只要设备靠近已保存(即用户过去明确连接过)且 RSSI 足够高的 WLAN 网络,便会自动重新启用 WLAN。

用户可在设置应用中通过以下路径启用或停用该功能:

设置 > 网络和互联网 > WLAN > WLAN 偏好设置 > 自动开启 WLAN

图 2. “自动开启 WLAN”功能

必须启用“WLAN 扫描”(针对位置信息)才能使该功能正常运行。如果未启用“WLAN 扫描”功能,则系统会提示用户允许启用此功能。之所以需要启用“WLAN 扫描”功能,是因为系统要根据扫描结果来判断设备是否位于符合重新启用 WLAN 连接条件的 WLAN 网络附近。

该功能可避免在用户停用 WLAN 后立即重新启用,即使设备检测到品质过硬的已保存 WLAN 网络也是如此。例如,如果用户在办公室并已连接到办公室的 WLAN(已保存的网络),然后停用 WLAN,则该功能将不会重新启用 WLAN,直到用户位于具有其他已保存网络(符合重新启用条件)的其他环境为止。

自动连接到开放网络

“连接到开放网络”功能在 Android 8.0 及更高版本中提供,可自动将设备连接到可用的优质网络。相关条件如下:

  • WLAN 已启用
  • 设备未连接到 WLAN 网络
  • 开放且优质(根据外部网络评分服务提供方的报告判断)的 WLAN 网络(请参见下一节)。

用户可在设置应用中通过以下路径启用或停用该功能:

设置 > 网络和互联网 > WLAN > WLAN 偏好设置 > 连接到开放网络

图 3. “连接到开放网络”功能和“网络评分服务提供方”菜单

如果未选择外部网络评分服务提供方,“连接到开放网络”功能便会停用。用户可以使用“网络评分服务提供方”菜单选择任何可用的网络评分服务提供方。

外部网络评分服务提供方

为了帮助用户确定优质 WLAN 网络需要符合哪些因素条件,Android 支持可提供开放 WLAN 网络质量相关信息的外部网络评分服务提供方(也称为“网络评分器”)。例如,网络评分器可能会使用历史效果数据(如“此 AP 过去的效果非常好,值得立即一试”)来判断特定 WLAN 网络的质量是否良好。

用户可通过以下路径访问可用的网络评分服务提供方列表: 设置 > 网络和互联网 > WLAN > WLAN 偏好设置 > 高级 > 网络评分服务提供方菜单。用户可以从中选择一个服务方,也可以不选择。如果没有可用的服务方或没有进行选择,“连接到开放网络”功能便会停用。

您无需提供外部网络评分服务提供方。要创建提供方,请执行以下操作:

  • 实现 NetworkScoreManager 中记录的 API。
  • 外部网络评分服务提供方必须是特权应用。
  • 通过更新产品叠加层配置文件(位于 frameworks/base/core/res/res/values/config.xml 中)中的 config_defaultNetworkRecommendationProviderPackage 键,将您的系统配置为使用自定义实现。

如果您不想包含默认的网络评分服务提供方功能,则可以选择不设置默认提供方属性,然后在 AOSP 中隐藏网络评分服务提供方屏幕。

WLAN 网络标记

WLAN 选择器还会根据网络评分服务提供方提供的信息,添加与可用 WLAN 网络的质量相关的信息,从而帮助用户手动选择 WLAN 网络。对于具有可用信息(由外部网络评分服务提供方提供)的网络,其名称下方会显示相应的速度信息。

图 4. 包含网络质量相关信息的 WLAN 网络

由于该功能需要用到外部网络评分服务提供方,因此如果没有可用的提供方或未选择提供方,该功能便无法使用,而且不会显示速度/质量信息。

WLAN 基础架构功能的更多相关文章

  1. JavaWeb三大框架基础架构——CRUD的基础功能搭建

    @ 目录 介绍 注意 applicationContext.xml mybatis-config.xml web.xml 结束语 介绍 项目前端采用了bootstrap,后端是ssm三大框架 注意 这 ...

  2. IT基础架构规划方案一(网络系统规划)

    背景                   某集团经过多年的经营,公司业务和规模在不断发展,公司管理层和IT部门也认识到通过信息化手段可以更好地支撑公司业务运营.提高企业生产和管理效率.同时随着新建办公 ...

  3. IT基础架构规划方案二(计算机系统与机房规划规划)

    计算机系统规划       服务器硬件选型规划方案       根据对某集团的实际调研,获取了企业业务应用系统的建设情况,随着企业信息化建设的推进,需要对各种信息化管理系统和应用系统的服务器选型进行选 ...

  4. IT基础架构规划方案三(IT基础软件和系统规划)

    IT基础软件和系统规划 操作系统选型规划方案 根据对某集团的实际调研,获取了企业业务应用系统的建设情况,随着企业信息化建设的推进,需要对各种信息化管理系统和应用系统的服务器选型进行选型规划,根据不同的 ...

  5. [翻译]用 Puppet 搭建易管理的服务器基础架构(3)

    我通过伯乐在线翻译了一个Puppet简明教程,一共分为四部分,这是第三部分. 本文由 伯乐在线 - Wing 翻译,黄利民 校稿.未经许可,禁止转载!英文出处:Manuel Kiessling.欢迎加 ...

  6. [Search Engine] 搜索引擎分类和基础架构概述

    大家一定不会多搜索引擎感到陌生,搜索引擎是互联网发展的最直接的产物,它可以帮助我们从海量的互联网资料中找到我们查询的内容,也是我们日常学习.工作和娱乐不可或缺的查询工具.之前本人也是经常使用Googl ...

  7. 移动互联网实战--Web Restful API设计和基础架构

    前言: 在移动互联网的大潮中, Web Restful API逐渐成为Web Server重要的一个分支. 移动端和服务端的交互, 主流的方式还是通过Http协议的形式来进行. 请求以Get/Post ...

  8. 面向服务体系架构(SOA)和数据仓库(DW)的思考基于 IBM 产品体系搭建基于 SOA 和 DW 的企业基础架构平台

    面向服务体系架构(SOA)和数据仓库(DW)的思考 基于 IBM 产品体系搭建基于 SOA 和 DW 的企业基础架构平台 当前业界对面向服务体系架构(SOA)和数据仓库(Data Warehouse, ...

  9. 用c#开发微信 (11) 微统计 - 阅读分享统计系统 1 基础架构搭建

    微信平台自带的统计功能太简单,有时我们需要统计有哪些微信个人用户阅读.分享了微信公众号的手机网页,以及微信个人用户访问手机网页的来源:朋友圈分享访问.好友分享消息访问等.本系统实现了手机网页阅读.分享 ...

随机推荐

  1. NOIP2017提高组模拟赛4 (总结)

    NOIP2017提高组模拟赛4 (总结) 第一题 约数 设K是一个正整数,设X是K的约数,且X不等于1也不等于K. 加了X后,K的值就变大了,你可以重复上面的步骤.例如K= 4,我们可以用上面的规则产 ...

  2. bzoj3436: 小K的农场(差分约束)

    3436: 小K的农场 题目:传送门 题解: 查分基础: t==1  a>=b+c t==2  b>=a-c t==3  a>=b+0 b>=a+0 跑最长路一A 代码: #i ...

  3. iOS CoreData 介绍和使用(以及一些注意事项)

    iOS CoreData介绍和使用(以及一些注意事项) 最近花了一点时间整理了一下CoreData,对于经常使用SQLite的我来说,用这个真的有点用不惯,个人觉得实在是没发现什么亮点,不喜勿喷啊.不 ...

  4. m_Orchestrate learning system---十八、mo项目的启示是什么

    m_Orchestrate learning system---十八.mo项目的启示是什么 一.总结 一句话总结:多看教程,体统看教程的学, 完全不懂的话百度的作用也不大 多学点,可以节约后面的超多时 ...

  5. sql server 查询某数据库中包含某字段的所有表格

    场景:查询DNMes数据库中所有包含RFID字段的表名 sql语句: select object_name(id) objName,Name as colName from syscolumns wh ...

  6. matlab张量工具初步

    最近从桑迪亚实验室下载了张量工具包.但是不太会用. 很多网上的方法, addpath(pwd) cd met; addpath(pwd) savepath M=ones(4,3,2); X=tenso ...

  7. sharding-jdbc,轻量级数据库分库分表中间件

    Sharding-JDBC是当当应用框架ddframe中,从关系型数据库模块dd-rdb中分离出来的数据库水平分片框架,实现透明化数据库分库分表访问.Sharding-JDBC是继dubbox和ela ...

  8. SpringBoot学习笔记(7)-----CORS支持解决跨域问题

    在实际应用开发中,跨域是一个比较常见的问题,解决方法可以用jsonp,frame,cors等, 这里示例的是SpringBoot对CORS的支持的三种实现方式 第一种:配置一种全局的支持,这种方式需要 ...

  9. Linux grep 筛选语句

    1. 同时满足多个条件 cat logs.log |grep 123|grep 'abc'|more      --查询logs.log中同时满足123和abc的句子 2. 满足任意一个条件 cat ...

  10. 关于深度残差网络(Deep residual network, ResNet)

    题外话: From <白话深度学习与TensorFlow> 深度残差网络: 深度残差网络的设计就是为了克服这种由于网络深度加深而产生的学习效率变低,准确率无法有效提升的问题(也称为网络退化 ...