- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Android WIFI 模块测试
对 android 平台的 WIFI 模块进行已经有段时间了,现在做一总结,以便以后查阅与修正。心得之作,如有异议,请斧正。
什么是 WIFI
WIFI 是一种无线连接技术,可用于 PC,PDA,手机等终端。 WIFI 的目的是改善基于IEEE802.11 标准的无线网络产品之间的互通性,也就是说 WIFI 是基于 802.11 标准的,但WIFI 不等同无线网络。
android 平台下的 WIFI 模块简单介绍一下,WIFI 模块的基本功能:
开关WIFI
除了在 WIFI 设置界面可以开关 WIFI,还有其他的入口可以开关,要查看这些开关状态是否一致。还有就是飞行模式对WIFI 开关的影响,由于 WIFI 开和关都有一个时间过程,而飞行模式的开关瞬间完成,所以有时会出现冲突。
开关新可用网络提醒
新可用网络的定义是自WIFI 模块开启后,从未发现过的,为加密的网络。只有满足了新可用网络的定义,才会有提醒。
连接断开网络
连接断开各种不同加密类型的网络(具体类型下文有详解)
手动添加网络
需要路由器关闭SIID 广播。可手动输入 SIID,网络加密类型,密码。对于 OPAL 手机来说, 路由器隐藏了SSID,手动添加的网络是无法连接的。
搜索网络
手动点击搜索按钮可以搜索网络,也可以等待WIFI 模块自动搜索网络。
休眠设置
由于WIFI 模块是用电大户,所有为了省电,android 的 WIFI 加了一个休眠策略,可以设置永远不断开,充电时不断开和锁屏时断开。要测试休眠设置是否有效,可以在路由器上 PING 手机的 IP,PING 通就是连接状态。OPAL 手机的休眠策略属于完全失效,现在的情况是无论选哪个都会一直保持连接,锁屏后15 分钟再休眠。
设置静态IP
Android 系统里对 IP 设置的输入限制很有问题,我一直认为这是弱智的限制。正常IP 的范围在 0-255 之间, android 对 IP 输入的限制是整数 0 到整数 255 之间,也就是说0000.000200.001.001 这样一个IP 都能合法输入。
3. 对 WIFI 模块深入了解一点点
WIFI 的基本运行流程
【初始化】
1 在 SystemServer 启动的时候,会生成一个 ConnectivityService 的实例2 ConnectivityService 的构造函数会创建 WifiService
3 WifiStateTracker 会创建 WifiMonitor 接收来自底层的事件,WifiService 和 WifiMonitor 是整个模块的核心。WifiService 负责启动关闭 wpa_supplicant、启动关闭 WifiMonitor 监视线程和把命令下发给 wpa_supplicant,而 WifiMonitor 则负责从 wpa_supplicant 接收事件通知。
【连接 AP】
WirelessSettings 在初始化的时候配置了由 WifiEnabler 来处理 Wifi 按钮
当用户按下Wifi按钮后, Android会调用WifiEnabler的onPreferenceChange,再由WifiEnabler 调用 WifiManager 的 setWifiEnabled 接口函数,通过 AIDL,实际调用的是 WifiService 的setWifiEnabled 函数,WifiService 接着向自身发送一条 MESSAGE_ENABLE_WIFI 消息,在处理该消息的代码中做真正的使能 工作:首先装载 WIFI 内核模块 (该模块的位置硬编码为/system/lib/modules/wlan.ko ),然 后 启 动 wpa_supplicant (配 置 文 件 硬 编 码 为/data/misc/wifi/wpa_supplicant.conf)再通过 WifiStateTracker 来启动 WifiMonitor 中的监视线程
当使能成功后,会广播发送 WIFI_STATE_CHANGED_ACTION这个 Intent 通知外界 WIFI
已 经 成 功 使 能 了 。 WifiEnabler 创 建 的 时 候 就 会 向 Android 注 册 接 收
WIFI_STATE_CHANGED_ACTION因,
【查找 AP】
此它会收到该 Intent,从而开始扫描
扫描的入口函数是 WifiService 的 startScan,它其实也就是往 wpa_supplicant 发送 SCAN 命令。
当 wpa_supplicant 处理完 SCAN 命令后,它会向控制通道发送事件通知扫描完成 ,从而wifi_wait_for_
您可能关注的文档
最近下载
- 人教版劳动教育一年级上册全册课件.pptx
- 购房补贴申请承诺书.docx VIP
- 机修工岗位职责及技能要求.doc VIP
- 电驱行业现状分析.pptx VIP
- 中国血脂管理指南(基层版2024年).pptx VIP
- 2024人教版八年级英语上册Unit 4 Amazing Plants and Animals 教案.pdf VIP
- Promega 普罗麦格 3D培养模型检测解决方案 说明书.pdf
- 2025年秋新人教版三年级上册数学全册课件.pptx
- 小学三年级上册体育教案精华版备考资料.doc VIP
- Unit 2 Travelling around Reading and Thinking 导学案--高中英语人教版(2019)必修第一册.docx VIP
文档评论(0)