5-2 Android Wlan Software programming Guide for Android_0.6

合集下载

基于wifi的手机遥控器设计毕业设计

基于wifi的手机遥控器设计毕业设计

摘要随着智能手机一步步走进普通人的生活,它已经成为人们获取信息的主要设备。

因此,手机应用服务将会有很大的发展空间,基于wifi的手机遥控器就是其中之一。

Android平台提供给用户非常方便的数据查询功能,这将为wifi手机遥控器的设计与实现提供更好的平台。

另外,Android平台基本上是免费的,所以能够有效的降低软件的成本,最终让每个用户能够自由的获取信息,有利于Android软件的普及。

本软件采用C/S模式,从软件的基本功能出发,在了解用户需求的基础上,提出了基于wifi的手机遥控器的基本目标,并且详细阐述了软件的总体设计以及各个阶段的设计过程以及结果。

主要需要完成界面的设计、连接功能设计、实现对幻灯片的基本控制、对pdf浏览控制、模拟无线鼠标、模拟游戏手柄以及实现各功能直接的自由切换,在pc端实现控制功能。

关键字:Android ,wifi手机遥控器,幻灯片控制,无线鼠标AbstractUnder the market economy, warehouse management is one of the important links of enterprise and main operation. Thus, mobile applications will be a great space for development, based on wifi phone remote control is one of them. Android platform is very convenient to the user's data query capabilities, which will provide a better platform for the design and implementation of wifi phone remote control. In addition, Android platform is essentially free, it is possible to effectively reduce the cost of software, ultimately allowing each user to be able to freely access information, is conducive to the popularity of Android software. The software uses C / S mode, starting from the basic features of the software, based on the understanding of user needs, we propose a basic objective based wifi remote control handset, and elaborated on the overall design and the various stages of the software design process and the results. The main interface design, connectivity, to achieve the basic control of the slide on the pdf browse control ,analog wireless mouse, analog gamepad, and the realization of the freedom to switch functionality directly in the pc-control functions.Keywords: Android, wifi cell phone remote control, slide control, wireless mouse目录1 引言 (1)1.1 课题研究意义 (1)1.2 技术简介 (1)1.3 开发工具选择 (2)2 系统分析 (3)2.1 需求概述 (3)2.2 需求分析 (3)2.3 架构分析 (4)3 系统设计与实现 (6)3.1 UI界面设计 (6)3.2 功能模块设计与流程 (9)3.3程序结构与功能设计 (8)3.3.1 程序实现 (10)3.3.2程序说明 (11)3.3.3客户端程序主要代码 (12)3.3.4服务端程序主要代码........................................................... 错误!未定义书签。

Android应用的无线网络测试指南

Android应用的无线网络测试指南

Android应用的无线网络测试指南无线网络已经成为我们生活中不可或缺的一部分,而Android应用的无线网络功能更是日益重要。

为了确保应用在各种网络环境下都能正常运行,进行系统化的无线网络测试是至关重要的。

本文将为您提供一份Android应用的无线网络测试指南,帮助您对应用的无线网络功能进行全面的测试和优化。

一、测试环境的搭建在进行无线网络测试之前,首先需要搭建适合的测试环境。

以下是一些测试环境的准备事项:1. 路由器:选择一款性能稳定、信号覆盖范围广的路由器。

设置路由器的无线网络名称和密码,确保手机能够正常连接并稳定传输数据。

2. 移动设备:准备多款不同型号的Android手机和平板电脑,覆盖不同的操作系统版本和屏幕分辨率。

3. 网络质量模拟工具:使用网络模拟器或者其他网络工具,模拟不同网络情况,包括网络延迟、丢包率、带宽等参数。

二、无线网络功能的测试点针对Android应用的无线网络功能,我们需要测试一些关键点以确保其正常工作。

以下是一些常见的测试点:1. 连接稳定性:测试应用在不同网络环境下的连接稳定性,包括WiFi和移动数据网络。

检查应用在弱信号环境下的表现,并观察是否出现连接中断、重连等问题。

2. 响应速度:测量应用在不同网络环境下的响应速度,包括数据请求和接收的时间。

比较在不同网络条件下的响应速度差异,发现潜在的性能瓶颈。

3. 数据传输质量:测试应用在网络传输过程中是否出现数据丢失、错误或者损坏的情况。

检查应用对数据包丢失或错误的处理能力,确保数据的完整性和准确性。

4. 节省流量:测试应用在使用移动数据网络时的流量消耗情况,比较应用在不同网络条件下的流量差异。

优化应用的流量使用,减少用户的流量费用。

5. 多任务处理:测试应用在同时处理多个网络请求时的性能表现,如并发下载、上传、推送通知等情况。

确保应用能够正常处理多个网络任务而不出现卡顿或崩溃。

三、测试工具的选择为了能够准确测试Android应用的无线网络功能,我们需要借助适当的测试工具。

Android之wifi分析(上)

Android之wifi分析(上)

NETWORK_STATE_CHANGED_ACTION EVENT_NETWORK_STATE_CHANGED EVENT_SUPPLICANT_STATE_CHANGED
WifiStateTracker
WifiService
notify WifiMonitor
WifiNative JNI
android_wifi_net_Wifi
第二步、启动supplicant服务
WifiService 负责启动关闭 wpa_supplicant、启动关闭 WifiMonitor 监视线程和把命令下发
Page 2
给 wpa_supplicant 第三步、启动MonitorThread线程,以下代码就是启动此线程
Sheet1
开始运行线程后先请求连接Suppliant,通过调用WifiStateTracker函数connectToSupplicant然后通过wifi_mtk.c的wifi_connect_to_supplicant 接着向wpa_ctrl的wpa_ctrl_open,然后通过CreateFile函数向wpa_supplicant读取数据。 连接成功后会发送EVENT_SUPPLICANT_CONNECTION消息启动获取DHCP地址线程阻塞调用(当连接上AP的时候,该线程会被执行起来 获取IP地址),并记录自己的MAC地址(因为MAC地址不会改变 ,所以请求一次即可) 接着开启一个死循环处理wpa_supplicant发送的事件。
Page 3
再到WifiStateTracker.java文件里scan
Sheet1
最后通过JNI调用到android_net_wifi_Wifi.cpp
所有的的消息下发来后都通过wifi_common.c文件里的send_command函数发给守护进程supplicant 函数wpa_ctrl_request()文件wpa_ctrl.c里就是负责把这些command发送到supplicant去,由supplicant负责去和wifi的driver打交道完成相应功能设置。 当 wpa_supplicant 处理完 SCAN 命令后,它会向控制通道发送事件通知扫描完成,从而wifi_wait_for_event 函数会接收到该事件 由此 WifiMonitor 中的 MonitorThread 会被执行来处理接扫描结果事件。此线程通过WifiStateTracker 广播 SCAN_RESULTS_AVAILABLE_ACTION这个Intent。 而WifiSettings注册了接收此Intent,最终由其相应函数updateAccessPoints将AP列表,以GUI的形式列出来。 WifiMonitor.java

android wifi详细

android wifi详细

Contents1. Wifi扫盲 (2)2. Android Wifi框架的结构图 (3)3. wpa_supplient (3)4. Netd (5)5. FrameWork层架构 (5)6. 情景分析 (5)6.1. 情景1 (5)6.2. 情景2 (8)6.3. 情景3 (8)7.Ad hoc的支持 (10)8.wifi direct (12)9.Soft ap支持 (12)10.Wifi Tethering支持 (15)b Tethering支持 (15)12.Reverse usb Tethering (16)13.Ethernet Tethering (17)14.需要改动的地方 (17)15.测试 (17)16.调试中遇到的问题 (18)1. Wifi扫盲Access point:也叫hotspot(热点),家里的无线路由就是ap。

SoftAp:软ap,用无线网卡模拟ap的功能。

Wifi网络有两种模式:∙Infrastructure mode, in which wireless clients are connected to an access point. This is generally the default mode for 802.11b cards.∙Ad hoc mode, in which clients are connected to one another without any access point.请参考/contents/wifi/wifimodes.php3我们既可以通过Ad hoc也可以通过SoftAp方式来实现共享网络(例如手机可以通过笔记本访问internet),但是原理不同。

这里只是简单的概括,详细的解释请google或百度。

2. Android Wifi框架的结构图上图只是wifi工作于station模式时的图,当工作于soft ap模式时最基本的不同是不通过wpa_supplicant而是Framework层直接通过netd daemon来控制驱动。

android 笔记 --- wifi应用

android 笔记 --- wifi应用

Android-开启和关闭wifi的代码段1、需要申请的权限Java代码1.android.permission.ACCESS_WIFI_STATE2.android.permission.CHANGE_WIFI_STATE3.android.permission.WAKE_LOCK2、获取WifiManagerJava代码1.wifiManager = (WifiManager) this.getSystemService(Context.WIFI_SERVICE);3、开启、关闭wifiJava代码1.if (wifiManager.isWifiEnabled()) {2.wifiManager.setWifiEnabled(false);3.} else {4.wifiManager.setWifiEnabled(true);5.}4、注意如果遇到force-close, 选wait即可, 因为启动wifi需要几秒钟, UI如果5妙钟还没反映的话, 系统会给你这个force close exceptionAndroid Wifi的使用Java代码1.package com.Aina.Android;2.3.import java.util.List;4.5.import android.content.Context;6.import .wifi.ScanResult;7.import .wifi.WifiConfiguration;8.import .wifi.WifiInfo;9.import .wifi.WifiManager;10.import .wifi.WifiManager.WifiLock;11.12./**13. * com.Aina.Android Pro_wifi14. *15. * @author Aina.huang E-mail: 674023920@16. * @version 创建时间:2010 Jul 21, 2010 12:29:00 PM 类说明17. */18.public class WifiAdmin {19.20. private WifiManager mWifiManager = null;21. private WifiInfo mWifiInfo = null;22. private List<ScanResult> mWifiList = null;// 扫描出的网络连接列表23. private List<WifiConfiguration> mWifiConfiguration = null;// 网络连接列表24. private WifiLock mWifiLock = null;25.26. public WifiAdmin(Context mContext) {27. mWifiManager = (WifiManager) mContext28. .getSystemService(mContext.WIFI_SERVICE);29. mWifiInfo = mWifiManager.getConnectionInfo();30. }31.32. public void OpenWifi() {33. if (!mWifiManager.isWifiEnabled()) {34. mWifiManager.setWifiEnabled(true);// 打开wifi35. }36. }37.38. public void CloseWife() {39. if (mWifiManager.isWifiEnabled()) {40. mWifiManager.setWifiEnabled(false);// 关闭wifi41. }42. }43.44. public void lockWifi() {45. mWifiLock.acquire();// 锁定wifi46. }47.48. public void rlockWifi() {49. if (mWifiLock.isHeld()) {50. mWifiLock.acquire();// 解锁wifi51. }52. }53.54. public void Createwifilock() {55. mWifiLock = mWifiManager.createWifiLock("Testss");// 创建一个wifilock56. }57.58. public List<WifiConfiguration> GetConfinguration() {59. return mWifiConfiguration;// 得到配置好的网络60. }61.62. public void ConnectConfiguration(int index) {63. if (index > mWifiConfiguration.size()) {64. return;65. }66. mWifiManager.enableNetwork(mWifiConfiguration.get(index).networkId, true);//连接配置好的指定ID的网络67. }68. public void StartScan()69. {70. mWifiManager.startScan();71. //得到扫描结果72. mWifiList = mWifiManager.getScanResults();73. //得到配置好的网络连接74. mWifiConfiguration = mWifiManager.getConfiguredNetworks();75. }76. //得到网络列表77. public List<ScanResult> GetWifiList()78. {79. return mWifiList;80. }81. //查看扫描结果82. public StringBuilder LookUpScan()83. {84. StringBuilder stringBuilder = new StringBuilder();85. for (int i = 0; i < mWifiList.size(); i++)87. stringBuilder.append("Index_"+new Integer(i + 1).toString() + ":");88. //将ScanResult信息转换成一个字符串包89. //其中把包括:BSSID、SSID、capabilities、frequency、level90. stringBuilder.append((mWifiList.get(i)).toString());91. stringBuilder.append("\n");92. }93. return stringBuilder;94. }95. //得到MAC地址96. public String GetMacAddress()97. {98. return (mWifiInfo == null) ? "NULL" : mWifiInfo.getMacAddress();99. }100. //得到接入点的BSSID101. public String GetBSSID()102. {103. return (mWifiInfo == null) ? "NULL" : mWifiInfo.ge tBSSID();104. }105. //得到IP地址106. public int GetIPAddress()107. {108. return (mWifiInfo == null) ? 0 : mWifiInfo.getIpAd dress();109. }110. //得到连接的ID111. public int GetNetworkId()112. {113. return (mWifiInfo == null) ? 0 : mWifiInfo.getNetw orkId();114. }115. //得到WifiInfo的所有信息包116. public String GetWifiInfo()117. {118. return (mWifiInfo == null) ? "NULL" : mWifiInfo.to String();119. }120. //添加一个网络并连接121. public void AddNetwork(WifiConfiguration wcg)123. int wcgID = mWifiManager.addNetwork(wcg); 124. mWifiManager.enableNetwork(wcgID, true); 125. }126. //断开指定ID的网络127. public void DisconnectWifi(int netId)128. {129. mWifiManager.disableNetwork(netId);130. mWifiManager.disconnect();131. }132.}。

WIFI Android 中英文翻译

WIFI Android 中英文翻译

基于WiFi的即时通信软件的设计与实现即时通信是一种终端服务,允许两个人或者多个人使用网络可以跨平台地即时地传递文字信息,文本文件,语音和视频进行交流。

自从即时通信软件产生以来,这种以网络为基础,与其他在线用户交互信息的实时方式,已其方便快捷的特点,受到了对消息反馈即时性要求很高的行业和机构的青睐。

即时通信自1998年面世以来,特别是近几年的迅速发展,即时通信的功能日益丰富,逐渐集成了电子邮件、博客、音乐、电视、游戏和搜索等多种功能。

即时通信不再是一个单纯的聊天工具,它已经发展成集交流、资讯、娱乐、搜索、电子商务、办公协作和企业客户服务等为一体的综合化信息平台。

传统的即时通信应用大部分是在PC端实现的,但随着无线传输网络的发展,各种智能操作平台的推出提供了硬件基础,在移动设备上的即时通信系统的研究成为了3G业务新的亮点。

随着网络技术的迅猛发展,信息科技水平的不断提高,移动终端技术逐渐增强,各种智能操作系统平台的出现,为即时通信系统移动化的发展提供了硬件基础;移动设备中开放性的Android平台,随着3G网络发展迅速占领了市场。

第三代移动通信技术(3rd-generation,3G),是指支持高速数据传输的蜂窝移动通讯技术。

3G服务能够同时传送声音及数据信息,速率一般在几百kbps以上。

目前3G存在四种标准:CDMA2000,WCDMA,TD-SCDMA,WiMAX。

一般地讲,3G是指将无线通信与国际互联网等多媒体通信结合的新一代移动通信系统,未来的3G必将与社区网站进行结合,WAP与WEB的结合是一种趋势。

3G与2G的主要区别是在传输声音和数据的速度上的提升,它能够在全球范围内更好地实现无线漫游,并处理图像、音乐、视频流等多种媒体形式,提供包括网页浏览、电话会议、电子商务等多种信息服务,同时也要考虑与已有第二代系统的良好兼容性。

为了提供这种服务,无线网络必须能够支持不同的数据传输速度,也就是说在室内、室外和行车的环境中能够分别支持至少2Mbps(兆比特/每秒)、384kbps(千比特/每秒)以及144kbps的传输速度。

Android网络开发之WIFI

Android网络开发之WIFI

Android网络开发之WIFIWIFI全称Wireless Fidelity, 又称标准。

WIFI联盟成立于1999年,当时的名称叫做Wireless Ethernet Compatibility Alliance(WECA), 2002年10月正式改名Wi-Fi Alliance。

Android 提供包。

wifi api为app和底层无线栈进行交流提供途径。

底层无线栈为wifi 提供接入点。

中常用的类有:1. ScanResult, 主要用来描述已经检测出的接入点,包括接入点的地址、接入点的名称、身份认证、频率、信号强度等。

2. WifiConfiguration, wifi网络配置,包括安全配置等。

3. WifiInfo, Wifi无线连接的描述,包括接入点、网络连接状态、隐藏的接入点、IP地址、连接速度、MAC地址、网络ID、信号强度等。

4. WifiManager, 提供管理wifi连接的大部分API。

5. , 通过WifiLock来锁定wifi网络,使其一直保持连接,直到这个锁定被释放。

如果app需要下载很大的文件,就需要保持wifi锁,来确保app有足够的时间下载完成。

wifi 锁不能超越wifi-enabled设置,也没有飞行模式。

WifiManager的常用方法1. addNetwork2. calculateSignalLevel,3. compareSignalLevel,4. createWifiLock,5. disableNetwork,6. disconnect,7. enableNetwork,8. getConfiguredNetworks,9. getDhcpInfo,10. getScanResults,11. getWifiState,12. isWifiEnabled,13. pingSupplicant,14. reassociate,15. removeNetwork,16. saveConfiguration,17. setWifiEnabled,18. startScan,19. updateNetwork.学习如何控制app中的wifi连接。

android wifi原理

android wifi原理

android wifi原理在Android设备中,Wifi技术被广泛应用于无线网络连接。

Wifi是一种基于无线局域网(WLAN)技术,通过无线信号进行数据传输。

下面将介绍Android Wifi的工作原理。

Wifi连接分为两个主要的角色:Wifi客户端和Wifi接入点(AP)。

Wifi客户端可以是Android手机、平板电脑或其他支持Wifi连接的设备。

Wifi接入点通常是无线路由器。

当启动Wifi功能时,Android设备将会搜索附近的Wifi网络。

这个搜索过程使用的是Wifi扫描机制,设备会广播请求附近的Wifi接入点响应,从而获取可用网络列表。

通过比较网络信号强度和其他网络参数,设备将选择一个最佳的网络连接。

通过用户选择列表中的网络,设备将尝试和所选的Wifi接入点建立连接。

连接过程可以通过以下步骤完成:1. 设备将向Wifi接入点发送连接请求,并传递设备的唯一身份标识符(即MAC地址)以进行身份验证。

2. Wifi接入点接收到连接请求后,会验证设备的身份。

这通常涉及到密码的验证,以确保只有具有正确凭据的设备可以连接到网络。

3. 如果设备通过了身份验证,Wifi接入点将向设备分配一个IP地址。

通过这个IP地址,设备将能够在Wifi网络上进行数据传输和通信。

4. 连接建立后,设备和Wifi接入点之间会建立一个稳定的通信链路,允许设备在网络上发送和接收数据。

一旦Wifi连接建立,Android设备将自动管理Wifi连接状态。

它会尝试保持和所选Wifi接入点的连接,直到另一个更好的网络出现或用户手动断开连接。

总之,Android Wifi的工作原理涉及到设备的Wifi扫描、连接请求、身份验证和IP地址分配等步骤。

通过这些步骤,Android设备能够和所选的Wifi接入点建立连接,并在无线网络上进行数据传输和通信。

Android应用程序开发(第二版)课后习题答案.doc

Android应用程序开发(第二版)课后习题答案.doc

第一章Android简介1.简述各种手机操作系统的特点.答案:目前,手机上的操作系统主要包括以下几种,分别是Android、iOS、Windows Mobile、Windows Phone 7、Symbian、黑莓、PalmOS和Linux。

(1)Android是谷歌发布的基于Linux的开源手机平台,该平台由操作系统、中间件、用户界面和应用软件组成,是第一个可以完全定制、免费、开放的手机平台。

Android底层使用开源的Linux操作系统,同时开放了应用程序开发工具,使所有程序开发人员都在统一、开放的开发平台上进行开发,保证了Android应用程序的可移植性。

(2)iOS是由苹果公司为iPhone、iPod touch、iPad以及Apple TV开发的操作系统,以开放源代码的操作系统Darwin为基础,提供了SDK,iOS操作系统具有多点触摸操作的特点,支持的控制方法包括滑动、轻按、挤压和旋转, 允许系统界面根据屏幕的方向而改变方向,自带大量的应用程序。

(3)Windows Mobile是微软推出的移动设备操作系统,对硬件配置要求较高,一般需要使用高主频的嵌入式处理器,从而产生了耗电量大、电池续航时间短和硬件成本高等缺点,Windows Mobile系列操作系统包括Smartphone、Pocket PC和Portable Media Center。

随着Windows Phone 7的出现,Windows Mobile 正逐渐走出历史舞台。

(4)Windows Phone 7具有独特的“方格子”用户界面,非常简洁,黑色背景下的亮蓝色方形图标,显得十分清晰醒目,集成了Xbox Live游戏和Zune音乐功能,可见Windows Phone 7对游戏功能和社交功能的重视。

(5)Symbian是为手机而设计的实时多任务32位操作系统,它的功效低,内存占用少,提供了开发使用的函数库、用户界面、通用工具和参考示例。

随身wifiandroid源代码

随身wifiandroid源代码

随身wifiandroid源代码随身WiFi Android源代码随身WiFi是一种便携式无线网络设备,可以将有线的互联网连接转化为无线的WiFi信号,方便用户在任何地方连接上网络。

下面是一个简单的随身WiFi Android应用的源代码示例,可以帮助用户创建自己的随身WiFi应用。

首先,我们需要在AndroidManifest.xml文件中声明一些必要的权限,例如访问WiFi状态和控制WiFi功能:```xml<uses-permissionandroid:name='android.permission.CHANGE_WIFI_STATE' /><uses-permissionandroid:name='android.permission.ACCESS_WIFI_STATE' />```然后,我们可以创建一个MainActivity类来处理应用程序的主要逻辑。

在这个类中,我们首先需要初始化WiFiManager对象,并检查设备是否支持WiFi功能:```javapublic class MainActivity extends AppCompatActivity {private WifiManager wifiManager;@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);setContentView(yout.activity_main);wifiManager = (WifiManager)getApplicationContext().getSystemService(Context.WIFI_SERVI CE);if (!wifiManager.isWifiEnabled()) {// 如果设备不支持WiFi,则显示错误信息Toast.makeText(getApplicationContext(), '设备不支持WiFi功能', Toast.LENGTH_SHORT).show();}}// 其他逻辑代码}```接下来,我们可以添加一些按钮来控制WiFi的打开和关闭。

android_wifi简介

android_wifi简介

提供了管理WiFi连接的大部分API,主要包括如下内容:
查看已经配置好的网络清单,而且可以修改个别记录的属性。 可以建立或是关闭WiFi网络连接,并且可以查询有关网络状态的动态信
息。
对接入点的扫描结果包含足够的信息来决定需要与什么接入点建立连接。 同时还定义了许多常量来表示WiFi状态的改变。
常用的方法:getWiFiState , isWifiEnabled,setWifiEnabled,startScan,EG:来自77WiFi的相关内容简介
1 2 3 4 5
WiFi的定义
操作WIFI网络所需要的权限
基于Android相关库函数 如何找到WiFi的AP WiFi参数以及含义
WiFi定义
它是一种短程无线传输技术,能够在数百英
尺范围内支持互联网接入的无线电信号。随着技
术的发展,以及IEEE 802.11a 及IEEE 802.11g
} }
相关参数说明
String BSSIDThe address of the access point. EG:00:25:86:4D:88:58 String SSIDThe network name EG:TP_LINK_4D8858 String capabilitiesDescribes the authentication, key management, and encryption schemes supported by the access point. EG:【WPA-PSK-TKIP+CCMP】【 WPA2-PSK-TKIP+CCMP-preauth 】
等标准的出现,现在IEEE 802.11 这个标准已被
统称作Wi-Fi。从应用层面来说,要使用Wi-Fi,

android wifi框架简介

android  wifi框架简介

一、wifi 组建原理:WIFI就是一种无线联网的技术,以前通过网线连接电脑,而现在则是通过无线电波来连网;常见的就是一个无线路由器,那么在这个无线路由器的电波覆盖的有效范围都可以采用WIFI连接方式进行联网,如果无线路由器连接了一条ADSL线路或者别的上网线路,则又被称为“热点”。

一般架设无线网络的基本配备就是无线网卡及一个AP(无线接入点)。

有了AP,就像一般有线网络的Hub一般,无线工作站可以快速且轻易地与网络相连。

特别是对于宽带的使用,WiFi更显优势,有线宽带网络(ADSL、小区LAN等)到户后,连接到一个AP,然后在电脑中安装一块无线网卡即可上网。

普通的家庭有一个AP已经足够,甚至用户的邻里得到授权后,则无需增加端口,也能以共享的方式上网。

二、=================== android WIFI 框架=======================---------------------------------------------------------------------------------------------------三、Android平台Wifi 编译前基本代码路径及文件名(根文件系统的源码下)1、Wifi setting 部分(Java应用层)位于packages/apps/Settings/src/com/android/settings/wifi/WifiSettings.java&WifiEnabler.java2、JAVA Framework部分位于frameworks/base/services/java/com/android/server/WifiService.jav a&Wifi Watchdog Service.java位于frameworks/base/wifi/java/android/net/wifi/WifiManager.java&WifiMonitoer.java&WifiStateTracker.java&WifiNative.java3. Wifi的JNI部分位于frameworks/base/core/jni/android_net_wifi_Wifi.cpp4. Wifi的HAL层代码(wpa_supplicant适配器层)位于hardware/libhardware_legary/wifi/wifi.c5. Wpa_supplicant程序的源码部分(tools)位于external/wpa_supplicant_6/external/wpa_supplicant/生成库libwpa_client.so 和守护进程wpa_supplicant6.kernel (wifi 驱动*.ko)位于 net/wireless drivers/wlan_sd8688 arch/arm/mach-pxa/wlan_pm.c 四、每一层编译后的所在位置Java应用层-- Settings, Wifi Switcher等应用--> /system/app/Java Framework层-->/system/framework/services.jarJNI层--> /system/framework/framework.jarwpa_supplicant 适配器层--> /system/lib/libhardware_legacy.sowpa_supplicant 程序--> /system/bin/wpa_supplicant/system/lib/libwpa_client.soKernel层-- kernel network drivers===================== android WIFI 框架end ====================================Wifi 网卡状态1. WIFI_STATE_DISABLED: WIFI网卡不可用2. WIFI_STATE_DISABLING: WIFI正在关闭3. WIFI_STATE_ENABLED:WIFI网卡可用4. WIFI_STATE_ENABLING:WIFI网卡正在打开5. WIFI_STATE_UNKNOWN:未知网卡状态Rootfs中关于wpa_supplicant的配置1) /device/amlogic/f08refe1/BoardConfig.mk//wpa_supplicant版本,driver WPA_SUPPLICANT_VERSION := VER_0_6_XBOARD_WPA_SUPPLICANT_DRIVER := WEXT2) root/init.rc //wpa_supplicant servicesetprop wifi.interface wlan0service wpa_supplicant /system/bin/wpa_supplicant -Dwext -iwlan0 -d -c/data/misc/wifi/wpa_supplicant.confsocket wpa_wlan0 dgram 0666 wifi wifi3) /system/etc/wifi/wpa_supplicant.conf//config for wpa_supplicant service update_config=1ctrl_interface=wlan0eapol_version=1ap_scan=1fast_reauth=1---------------------android-wifi 原理1. Wifi 模块框图:2.Wifi工作步骤:a.wifi启动b.扫描c.显示扫描的APd.配置连接APe.获取IP地址f.正常上网3.模块细解:【WifiService】由SystemServer启动的时候生成的ConnecttivityService创建,负责启动关闭wpa_supplicant,启动和关闭WifiMonitor线程,把命令下发给wpa_supplicant以及跟新WIFI的状态WifiMonitor 负责从wpa_supplicant接收事件通知【Wpa_supplicant】执行过程1、读取配置文件2、初始化配置参数,驱动函数3、让驱动scan当前所有的bssid4、检查扫描的参数是否和用户设置的想否5、如果相符,通知驱动进行权限认证操作6、连上AP4.Wifi模块代码:Wifi Application代码packages/apps/Settings/src/com/android/settings/wifiWifi Frameworkframeworks/base/wifi/java/android/net/wififrameworks/base/services/java/com/android/serverWifi JNIframeworks/base/core/jni/android_net_wifi_Wifi.cppWifi toolexternal/wpa_supplicantWifi kernelnet/wireless drivers/wlan_sd8688 arch/arm/mach-pxa/wlan_pm.cWifi Hardwarehardware/libhardware_legacy/wifi/wifi.c5.WIFI的基本运行单元流程:【休眠设置】由于WIFI模块是用电大户,所有为了省电,android的WIFI加了一个休眠策略,可以设置永远不断开,充电时不断开和锁屏时断开。

android wifi框架简介

android  wifi框架简介

一、wifi 组建原理:WIFI就是一种无线联网的技术,以前通过网线连接电脑,而现在则是通过无线电波来连网;常见的就是一个无线路由器,那么在这个无线路由器的电波覆盖的有效范围都可以采用WIFI连接方式进行联网,如果无线路由器连接了一条ADSL线路或者别的上网线路,则又被称为“热点”。

一般架设无线网络的基本配备就是无线网卡及一个AP(无线接入点)。

有了AP,就像一般有线网络的Hub一般,无线工作站可以快速且轻易地与网络相连。

特别是对于宽带的使用,WiFi更显优势,有线宽带网络(ADSL、小区LAN等)到户后,连接到一个AP,然后在电脑中安装一块无线网卡即可上网。

普通的家庭有一个AP已经足够,甚至用户的邻里得到授权后,则无需增加端口,也能以共享的方式上网。

二、=================== android WIFI 框架=======================---------------------------------------------------------------------------------------------------三、Android平台Wifi 编译前基本代码路径及文件名(根文件系统的源码下)1、Wifi setting 部分(Java应用层)位于packages/apps/Settings/src/com/android/settings/wifi/WifiSettings.java&WifiEnabler.java2、JAVA Framework部分位于frameworks/base/services/java/com/android/server/WifiService.jav a&Wifi Watchdog Service.java位于frameworks/base/wifi/java/android/net/wifi/WifiManager.java&WifiMonitoer.java&WifiStateTracker.java&WifiNative.java3. Wifi的JNI部分位于frameworks/base/core/jni/android_net_wifi_Wifi.cpp4. Wifi的HAL层代码(wpa_supplicant适配器层)位于hardware/libhardware_legary/wifi/wifi.c5. Wpa_supplicant程序的源码部分(tools)位于external/wpa_supplicant_6/external/wpa_supplicant/生成库libwpa_client.so 和守护进程wpa_supplicant6.kernel (wifi 驱动*.ko)位于 net/wireless drivers/wlan_sd8688 arch/arm/mach-pxa/wlan_pm.c 四、每一层编译后的所在位置Java应用层-- Settings, Wifi Switcher等应用--> /system/app/Java Framework层-->/system/framework/services.jarJNI层--> /system/framework/framework.jarwpa_supplicant 适配器层--> /system/lib/libhardware_legacy.sowpa_supplicant 程序--> /system/bin/wpa_supplicant/system/lib/libwpa_client.soKernel层-- kernel network drivers===================== android WIFI 框架end ====================================Wifi 网卡状态1. WIFI_STATE_DISABLED: WIFI网卡不可用2. WIFI_STATE_DISABLING: WIFI正在关闭3. WIFI_STATE_ENABLED:WIFI网卡可用4. WIFI_STATE_ENABLING:WIFI网卡正在打开5. WIFI_STATE_UNKNOWN:未知网卡状态Rootfs中关于wpa_supplicant的配置1) /device/amlogic/f08refe1/BoardConfig.mk//wpa_supplicant版本,driver WPA_SUPPLICANT_VERSION := VER_0_6_XBOARD_WPA_SUPPLICANT_DRIVER := WEXT2) root/init.rc //wpa_supplicant servicesetprop wifi.interface wlan0service wpa_supplicant /system/bin/wpa_supplicant -Dwext -iwlan0 -d -c/data/misc/wifi/wpa_supplicant.confsocket wpa_wlan0 dgram 0666 wifi wifi3) /system/etc/wifi/wpa_supplicant.conf//config for wpa_supplicant service update_config=1ctrl_interface=wlan0eapol_version=1ap_scan=1fast_reauth=1---------------------android-wifi 原理1. Wifi 模块框图:2.Wifi工作步骤:a.wifi启动b.扫描c.显示扫描的APd.配置连接APe.获取IP地址f.正常上网3.模块细解:【WifiService】由SystemServer启动的时候生成的ConnecttivityService创建,负责启动关闭wpa_supplicant,启动和关闭WifiMonitor线程,把命令下发给wpa_supplicant以及跟新WIFI的状态WifiMonitor 负责从wpa_supplicant接收事件通知【Wpa_supplicant】执行过程1、读取配置文件2、初始化配置参数,驱动函数3、让驱动scan当前所有的bssid4、检查扫描的参数是否和用户设置的想否5、如果相符,通知驱动进行权限认证操作6、连上AP4.Wifi模块代码:Wifi Application代码packages/apps/Settings/src/com/android/settings/wifiWifi Frameworkframeworks/base/wifi/java/android/net/wififrameworks/base/services/java/com/android/serverWifi JNIframeworks/base/core/jni/android_net_wifi_Wifi.cppWifi toolexternal/wpa_supplicantWifi kernelnet/wireless drivers/wlan_sd8688 arch/arm/mach-pxa/wlan_pm.cWifi Hardwarehardware/libhardware_legacy/wifi/wifi.c5.WIFI的基本运行单元流程:【休眠设置】由于WIFI模块是用电大户,所有为了省电,android的WIFI加了一个休眠策略,可以设置永远不断开,充电时不断开和锁屏时断开。

Android WiFi工作原理

Android WiFi工作原理

Android Wi-Fi工作原理刘洋第一部分Android概述在介绍Wi-Fi之前,先简要介绍一下Android系统,主要分析一下Android的按层实现的原理。

Android层次结构是整个Android体系中所有应用实现的基础框架,而Android源代码结构则与Wi-Fi的实现细节有关。

1.1 基础知识Android是一款当前最为流行的手机操作系统,它本身的开放性加上Google 公司的大力推广,使其获得了大量手机生产厂商、科研院校、软件公司以及个人开发者的青睐,它属于一个全开放的平台,因此开发者可以得到整个系统的源代码,并能对其进行修改,修改的结果可以通过互联网上传到Android官方网站,倘若被审核通过,就能加入到Android的源代码中,这绝对是一件令人兴奋的事情。

1.2 Android层次结构Android系统是在Linux系统的基础上,经过了层层封装,最终提供给开发者的是大量的Java API,在这里被叫做Android API,于是,开发者就可以像开发一般的Java程序那样开发Android应用程序,这样的设计不仅降低了开发Android 应用程序的难度,还增加了Android系统的界面友好度。

和一般的操作系统一样,Android也是对硬件进行了多层的封装,使得应用程序的开发者和用户能轻松地操作硬件,完成他们所希望完成的事情。

Android 所针对的硬件就是手机,这里主要指智能手机,这种智能手机与传统的手机相比电话功能被弱化,而更偏向于一台笔记本电脑,因此它的CPU、内存等硬件配置要比传统的手机高。

它需要提供给用户一些电脑所拥有的功能,比如说Wi-Fi上网、鼠标或触屏控制的界面、收发电子邮件、玩大型游戏等,但同时又必须拥有传统手机所支持的电话、摄像头、蓝牙等功,这些挑战都增加了Android的设计难度。

Android从下至上可以分为这样几个层次:(1)Linux内核及驱动层(C实现);(2)本地库(C库和C++库)和Java运行时环境层(主要由C、C++实现);(3)Java框架层(主要由Java实现);(4)Java应用程序层(Java实现)。

android wifi管理(An-Beer 工作室)

android wifi管理(An-Beer 工作室)

Android Wifi简单管理与操作因为需要一直在弄网络的问题,今天看了一下Wifi的操作,经过整理,做出来了一个类,可能不全,但是个人感觉已经完全能够满足需要了,当然,里面的方法也有可能是错误的或者是不全的,这个类我没有进行完整的测试,只测试了其中的一些方法。

其实操作Wifi也是很简单的,主要使用以下几个对象或变量:private WifiManager wifiManager;// 声明管理对象OpenWifiprivate WifiInfo wifiInfo;// Wifi信息private List<ScanResult> scanResultList; // 扫描出来的网络连接列表private List<WifiConfiguration> wifiConfigList;// 网络配置列表private WifiLock wifiLock;// Wifi锁其实这些不写成一个单独的类也是可以操作的,介理这里为了使用方便,写了一个统一的类对Wifi进行操作,通过这些方法,基本上可以得到所有操作的数据下面把代码给大家,如果需要可以做为一个参考:代码package com.wifitest;import java.util.List;import android.content.Context;import .wifi.ScanResult;import .wifi.WifiConfiguration;import .wifi.WifiInfo;import .wifi.WifiManager;import .wifi.WifiManager.WifiLock;public class WifiManageClass {private WifiManager wifiManager;// 声明管理对象private WifiInfo wifiInfo;// Wifi信息private List<ScanResult> scanResultList; // 扫描出来的网络连接列表private List<WifiConfiguration> wifiConfigList;// 网络配置列表private WifiLock wifiLock;// Wifi锁public WifiManageClass(Context context) {this.wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);// 获取Wifi服务// 得到Wifi信息this.wifiInfo = wifiManager.getConnectionInfo();// 得到连接信息}public boolean getWifiStatus(){return wifiManager.isWifiEnabled();// 打开/关闭 wifipublic boolean openWifi() {if (!wifiManager.isWifiEnabled()) {return wifiManager.setWifiEnabled(true);} else {return false;}}public boolean closeWifi() {if (!wifiManager.isWifiEnabled()) {return true;} else {return wifiManager.setWifiEnabled(false);}}// 锁定/解锁wifi// 其实锁定WiFI就是判断wifi是否建立成功,在这里使用的是held,握手的意思acquire 得到!public void lockWifi() {wifiLock.acquire();public void unLockWifi() {if (!wifiLock.isHeld()) {wifiLock.release(); // 释放资源}}// 我本来是写在构造函数中了,但是考虑到不是每次都会使用Wifi锁,所以干脆自己建立一个方法!需要时调用,建立就OKpublic void createWifiLock() {wifiLock = wifiManager.createWifiLock("flyfly"); //创建一个锁的标志}// 扫描网络public void startScan() {wifiManager.startScan();scanResultList = wifiManager.getScanResults(); // 扫描返回结果列表wifiConfigList = wifiManager.getConfiguredNetworks (); // 扫描配置列表}public List<ScanResult> getWifiList() {return scanResultList;}public List<WifiConfiguration> getWifiConfigList() { return wifiConfigList;}// 获取扫描列表public StringBuilder lookUpscan() {StringBuilder scanBuilder = new StringBuilder();for (int i = 0; i < scanResultList.size(); i++) { scanBuilder.append("编号:" + (i + 1));scanBuilder.append(scanResultList.get(i).toStri ng()); //所有信息scanBuilder.append("\n");}return scanBuilder;}//获取指定信号的强度public int getLevel(int NetId){return scanResultList.get(NetId).level;}// 获取本机Mac地址public String getMac() {return (wifiInfo == null) ? "" : wifiInfo.getMacAddr ess();}public String getBSSID() {return (wifiInfo == null) ? null : wifiInfo.getBSSID ();}public String getSSID() {return (wifiInfo == null) ? null : wifiInfo.getSSID ();}// 返回当前连接的网络的IDpublic int getCurrentNetId() {return (wifiInfo == null) ? null : wifiInfo.getNetwo rkId();}// 返回所有信息public String getwifiInfo() {return (wifiInfo == null) ? null : wifiInfo.toString ();}// 获取IP地址public int getIP() {return (wifiInfo == null) ? null : wifiInfo.getIpAdd ress();}// 添加一个连接public boolean addNetWordLink(WifiConfiguration config) {int NetId = wifiManager.addNetwork(config);return wifiManager.enableNetwork(NetId, true);}// 禁用一个链接public boolean disableNetWordLick(int NetId) {wifiManager.disableNetwork(NetId);return wifiManager.disconnect();}// 移除一个链接public boolean removeNetworkLink(int NetId) {return wifiManager.removeNetwork(NetId);}//不显示SSIDpublic void hiddenSSID(int NetId){wifiConfigList.get(NetId).hiddenSSID=true;}//显示SSIDpublic void displaySSID(int NetId){wifiConfigList.get(NetId).hiddenSSID=false;}}当然在操作Wifi的时候也需要相应的权限,个人感觉这个是使用权限最多的,当然操作Wifi不能在模拟器中进行,必须要放到带有Wifi的真机上进行,还有此类没有对可能存在的错误进行相应的捕获与处理,希望参考的朋友注意这一点,否则可能容易被突然出来的错误误导,也找不到问题,我在开发的时候就遇到过这样的问题!因此对可能存在的问题,一定要进行相应的处理!下面是操作这些所需要的权限,当然根据操作的内容不同,可能权限也不同,下面的权限仅供参考:代码<uses-permission android:name="android.permission.ACCESS_ WIFI_STATE"></uses-permission><uses-permission android:name="adnroid.permission.ACCESS_ CHECKIN_PROPERTTES"></uses-permission><uses-permission android:name="android.permission.WAKE_LO CK"></uses-permission><uses-permission android:name="android.permission.INTERNE T"></uses-permission><uses-permission android:name="adnroid.permission.CHANGE_ WIFI_STATE"></uses-permission><uses-permission android:name="android.permission.MODIFY_ PHONE_STATE"></uses-permission>如果你发现这些代码中有错误或者是不完整的话,希望发消息给我,进行完善!只有相互交流才能进步!。

Android移动智能手机支持wifi终端与支持无线承载wifi功能笔记本电脑终端互联的的操作步骤

Android移动智能手机支持wifi终端与支持无线承载wifi功能笔记本电脑终端互联的的操作步骤

Android移动智能手机支持wifi终端与支持无线承载wifi功能笔记本电脑终端WLAN(WIFI)互联的操作步骤为便于智能手机与电脑终端互联,便于手机文件的操作管理等。

总结一下经验互联操作步骤进行分享。

互联分两种方式:一是电脑通过远程桌面管理智能终端;二是电脑通过FTP功能管理智能终端.一、方式一、电脑通过远程桌面管理智能终端1、实现互联的条件:移动智能终端支持移动AP功能(也就是3G移动热点,与WIFI功能没有关系)电脑终端支持WIFI WLAN功能移动终端安装:Aico文件管理器下载地址/2、实现互联步骤A、在移动智能终端开启移动3G热点服务即移动AP功能进行相关无线SSID 频率密钥设置B、在wifi功能电脑上通过无线网卡连接移动AP功能的无线信号,至连接成功后,电脑无线网卡会由移动AP功能的DHCP服务自动分配一个192.168网段的地址。

C、在手机安装AICO文件管理器-高级服务-开启远程桌面功能。

开启成功后,会生成一个由电脑访问的http 地址及用户名和密码D、打开电脑终端的浏览器输入该HTTP地址即可实现对移动智能终端的文件进行操作和管理。

3、移动智能终端远程桌面功能是集成在浏览器里实现的。

二、方式二、电脑通过FTP服务对移动智能手机进行访问及文件管理功能1、实现互联的条件移动智能终端支持WIFI 功能wlan、安装AICO文件管理器下载地址/电脑支持wifi功能及支持无线承载网络功能(支持无线承载即支持虚拟wifi AP功能,),支持无线承载的无线网卡驱动必须最新,操作系统必须为win7及win2008 。

(后附判定无线网卡是否支持无线承载虚拟AP功能的判定方法见附件)2、实现互联的操作步骤A、在支持无线承载虚拟AP 电脑终端开启无线承载虚拟AP 功能B、在移动智能手机终端开启wifi功能,并连接电脑无线承载虚拟AP的无线SSID,至连接成功后,会自动由虚拟APDHCP自动分配一个192.168网段的ip地址C、打开移动智能终端的aico文件管理器-高级服务-ftp服务功能并开启,开启成功后会自动生成一个由电脑访问的FTP 地址及用户名和密码D、打开电脑浏览器输入该FTP地址即可实现对手机文件系统的操作与管理。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Version: 0.6Release date:2012-06-2019© 2011 - 2012 MediaTek Inc.This document contains information that is proprietary to MediaTek Inc.Unauthorized reproduction or disclosure of this information in whole or in part is strictly prohibited.Android Wlan SoftwareProgramming GuideM ed ia te kCo n fi d e nt i a lMediaTek Confidential© 2012 MediaTek Inc.Page 2 of 15Specifications are subject to change without notice.Type equation here.M ed ia te kCo n fi d e nt i a lMediaTek Confidential© 2012 MediaTek Inc.Page 3 of 15Document Revision HistoryRevision Date Author Description0.12012-4-17Zhang Luo and Jian SunInitial Draft0.4 2012-5-15 Zhang Luo Update for ACS training0.52012-06-06Zhang LuoAdd the Channel 14 and wlan configuration file flow.0.6 2012-06-19 Zhang LuoM ed ia te kCo nfi d e nt i a lMediaTek Confidential© 2012 MediaTek Inc.Page 4 of 15Table of ContentsDocument Revision History..................................................................................................................3 Table of Contents.. (4)1 Introduction (5)2 Architecture..................................................................................................................................6 2.1The architecture of wlan driver (6)2.1.1 Wlan Software Modules (7)2.1.2 Wlan Driver Initialization Sequence (8)2.2 The architecture of the other three layers (9)3Source Code Hierarchy (10)3.1 The Source Code Hierarchy of wlan driver (10)3.2 The Source Code Hierarchy of wpa_supplicant (11)4 Questions and Answers (12)M ed ia te kCo n fi d e nt i a lMediaTek Confidential© 2012 MediaTek Inc.Page 5 of 151IntroductionThe Android Wlan framework could be divided into four layers, such as wlan UI, wlan framework, wpa_supplicant and wlan driver. Mediatek wlan software will provide the solution of wlan driver and wpa_supplicant.The document aims to help the programmers understand the wlan driver and wpa_supplicant architecture and how to port the software to Android.M ed ia te kCo n fi d e nt i a lMediaTek Confidential© 2012 MediaTek Inc.Page 7 of 152.1.1Wlan Software ModulesThe wlan host driver support the station, AP mode, P2P GO/GC, BT3.0 (not supported with the Bluez stack) roles. And it will communicate with the MT6620 Wlan firmware with the hif tx/rx format.Figure 2 Wlan Software ModulesM ed i a te k Co n fi d e nt i a lMediaTek Confidential© 2012 MediaTek Inc.Page 8 of 152.1.2 Wlan Driver Initialization SequenceBefore the sdio card detection, the wmt driver will power on the chip, and stp driver will download the patch for the MT6620 firmware. After the sdio card detection, the wlan driver will download wlan firmware and start the firmware. When the firmware indicate it’s ready to work, the initialization flow of wlan driver is complete.Figure 3 Wlan Driver Initialization FlowM ed ia te kCo n fi d e nt i a lMediaTek Confidential© 2012 MediaTek Inc.Page 9 of 152.2The architecture of the other three layersThe following figure is the architecture of wlan UI, wlan framework and wpa_supplicant. The wlan UI and framework is the same as the Android default UI and framework except the addition of WAPI. In the document, it will not describe the working flow of wlan UI and framework. But it will indicate the change of the wpa_supplicant in mediatek wlan software.Figure 4 The architecture of the other three layersCall procedure AIDL BroadcastSocket CommunicationM ed ia te kC o n fi d e nt i a lMediaTek Confidential© 2012 MediaTek Inc.Page 10 of 153Source Code Hierarchy3.1The Source Code Hierarchy of wlan driverThe directory tree is arranged as following:FolderDescriptionBatch files and make files to build drivershif includeHost interface related KAL function declarationcommon GL and KAL implementation for OS Windowsos linuxincludeheader file for type definition, OS glue structure and driver informationmgmtManagement modules, as 802.11 protocols stack implementation inside driver.nicNon-OS dependant common part of NIC driver logic.common Shared logic for handling OID and inter-activation with firmware codeheaders for common usemgmt Specific structure and definitions for management componentRootincludenicSpecific structure and constants for MT6620, including data structures used to communicate with MT6620 FW and HWM ed ia te kCo n fi d e nt i a lMediaTek Confidential© 2012 MediaTek Inc.Page 11 of 153.2The Source Code Hierarchy of wpa_supplicantFolderDescription./Core functionality such as program initialization, main control loop and Driver event processingexamples Examples of configuration filetestsTest program for cryptographic functions.wpa_gui & wpa_gui-qt4 We do not use this.common ieee802_11, wpa and eapol’s common definition and routines crypto cryptographic functionsdriversDriver interface API is defined in driver.h and all hardware/driver dependent functionality is implemented in driver_*.c eap_commonThe common part of eap methods eap_peerThe peer part of eap methods eap_serverThe server part of eap methods eapol_supp EAPOL state machinehlr_auc_gwHLR/AuC testing gateway forhostapd EAP-SIM/AKA database/authenticator l2_packetLayer2 packet handling radiusWe do not use thisrsn_supp wpa processing and pre-authentication processign tls TLSv1 client (RFC 2246)utils Common functions such as debug , IP processing functions.wpa_supplicantsrcwpsWi-Fi Protected Setup related functionswapiLibrary file for wapi. (Add)M ed ia t e kCo n fi d e nt i a lMediaTek Confidential © 2012 MediaTek Inc.Page 12 of 154Questions and AnswersThis section lists questions and answers collected from several platforms. Please have a check before report issues in case you may valuable information to similar problems.Q1: The sdio operation error caused the failure of wlan driver initialization?A1: In the initialization flow of wlan device, some sdio error message may appear, which causes thefailure of the initialization flow. The possible reason is that the sdio bus is not stable because of the hwlayout or sd host controller. You could check the waveform of the sdio bus, or decrease the clock of sdio bus.Q2: The sdio card could be detected, but our sdio client driver could not be loadedautomatically?A2: The sdio card configured may be fixed in the mmc core, so please make sure the CONFIG_MMC_EMBEDDED_SDIO is disabled in the kernel config.Q3: The iwconfig and iwlist work with the wlan driver, but WiFi HAL could not connect to thewpa_supplicant?A3: The error message may looks like this: 13:53:35.469:DEBUG/WifiCommon(142):[wlan0]Opencontrol connectionfail(/data/misc/wifi/wpa_supplicant/wlan0). Sleep 300000us13:53:35.769:DEBUG/WifiCommon(142):[wlan0]Opencontrolconnectionfail(/data/misc/wifi/wpa_supplicant/wlan0). Sleep 300000us13:53:36.069: DEBUG/WifiCommon(142): [wlan0] Open control connection fail (/data/misc/wifi/wpa_supplicant/wlan0). Sleep 300000usPlease check the wpa_supplicant.conf in /data/misc/ and /system/etc/wifi/ , make sure the control interface is configured as the following.ctrl_interface=DIR=/data/misc/wifi/wpa_supplicant GROUP=wifiM ed ia te kCo n fi d e nt i a lMediaTek Confidential© 2012 MediaTek Inc.Page 13 of 15Q4: The scan result could not be indicated to the host?A4: Because the clock of sdio bus maybe disabled after a inactive period of the sdio bus. So you have two ways to resolve it. First, port the Wifi EINT solution in common part driver (recommended). Second, make the sdio clock always on.Q5: Can not turn on Wi-Fi from UI with wapi supporting? A5: The error message may looks like this:10‐01 16:16:17.109 D/wpa_supplicant( 1687): [WAPI]wpa_supplicant_init_wapi ===>10‐01 16:16:17.109 D/wpa_supplicant( 1687): [WAPI]wapi_lib_init => !!!wapi_lib_init!!! in libwapi.so 10‐01 16:16:17.109 D/wpa_supplicant( 1687): wpa_driver_wext_send_msg(wlan0) len = 514 10‐01 16:16:17.109 D/wpa_supplicant( 1687): ioctl[SIOCIWFIRSTPRIV + 8] 10‐01 16:16:17.109 E/wpa_supplicant( 1687): Send Msg Ioctl error!!10‐01 16:16:17.109 E/wpa_supplicant( 1687): WAPI secuirty keygen fail !! 10‐01 16:16:17.109 E/wpa_supplicant( 1687): WAPI INIT fail in INIT.01!!10‐01 16:16:17.109 E/wpa_supplicant( 1687): Failed to initialize WAPI library10‐01 16:16:17.109 E/wpa_supplicant( 1687): init wapi module fail!!The wapi feature is needed to add the wapi support in both wpa_supplicant and wlan driver. The log indicate the wlan driver don’t have the wapi support. Please check gl_sec.o has been built in wlan.ko. Q6: How to pass Regulatory Domain Test?A6: The country code in NVRAM file could be changed to pass the regulatory domain test.The following values are the supported regulation setting in NVRAM.1. “” (0x0000): indicate channel 1~14 in2.4GHz band2. “US” (0x5355): indicate channel 1~11 in 2.4GHz band3. “EU” (0x5545): indicate channel 1~13 in 2.4GHz band4. “JP” (0x504A): indicate channel 1~14 in 2.4GHz bandBecause of the side lobe effect, you could see the AP in channel 14 in the scan results when you set the country code to “EU”, but the AP could not be connected It is because that AP in channel 14 was listened inM ed ia te kCo n fi d e nt i a loCketaidMediaTek Confidential© 2012 MediaTek Inc.Page 15 of 15And the NVRAM solution gives the flexibility for the customization. If the BSP package supports nvram encryption and protection, you could add the related interface in driver before reading the nvram file and after the closing nvram file.Q9: How to implement the wifi test tool?A9: Mediatek provide a test library for the wifi test tool development. The detail of the test library is in the WIFI_TEST_LIBRARY_V_0_3.pdf. Because the test library is a wrapper of the wlan test ioctl,please notice the capability and permission issue of its usage. And wpa_supplicant is a good example..M ed ia te kCo n fi d e nt i a l。

相关文档
最新文档