智能终端及其网络配置方法

文档序号:10691938阅读:1413来源:国知局
智能终端及其网络配置方法【专利摘要】本发明公开一种智能终端及其网络配置方法,该方法包括如下步骤:建立符合WiFiP2P规范的网络群组以完成本智能终端的热点模式的启动,使其与本智能终端的站点模式并存工作;以系统最高权限调用网络守护进程修改网络共享配置信息使连通热点模式与站点模式之间的网络连接;在客户端接入所述网络群组后,建立该客户端与由所述站点模式所维持的外网的连接。通过本发明的处理,Android系统的智能终端便具备了双模功能,也即同时既可充当热点供其他设备接入,也可充当站点接入外部网络接入点,并且可以起到路由器的作用,允许接入该智能终端的客户端设备通过该智能终端访问外网。【专利说明】智能终端及其网络配置方法
技术领域
[0001]本发明设及智能终端的组网技术,具体而言,本发明设及一种智能终端及其网络配置方法。【
背景技术
】[0002]Android系统的智能终端,包括手机、平板电脑、行车记录仪、可佩戴的手表、眼镜等等,通常此类智能终端均配备有相应的遵守IEEE802.il协议规范的WiFi模组,装载相应的驱动,提供相应的接口供框架层W上的进程的调用。[0003]通常遵守802.11协议的机。1模组均支持多种工作模式,例如1855,1日11日旨日(1,八口,AP/VLAN,Monitor,meshpoint,P2P-Client,P2P-G0等模式,种模式可实现不同的组网功能。其中,Managed也即俗知的Station(STA)即工作站模式,AP即俗称的访问接入点模式(AccessPoint);IBSS则是a化OC即直连模式,P2P即俗称的WiFiDirect技术,属于Wi-FiAlliance(Wi-Fi联盟)推出的一项重要技术规范。STA模式下,智能终端便成为一个工作站,可W接入一个处于AP模式下的终端。同理,P2P-Client相当于STA,可W接入一个相当于AP的P2P-G0(P2PGroupOwner)模式下的智能终端。可见,至少有IBSS和WiFiDirect两种体系可W实现将多台智能终端进行组网,同一部智能终端,基于同一WiFi模组,既可充当热点,还可充当站点。[0004]-种应用需求中,希望使同一智能终端的WiFi模组同时工作于站点和热点两种模式,运样便于在该智能终端利用其站点模式接入外网后,通过其热点模式向其他WiFi设备提供接入和网络共享服务。现实中,基于Windows或I0S的智能终端,能够善用WiFi模组提供的功能,使运种智能终端能够虚拟出两台设备,即站点设备和热点设备,在运个基础上,允许该智能终端一方面可W接入无线AP,另一方面可W充当AP供其他WiFi设备接入。[0005]然而Amlroid智能终端却不具备运种功能。Andoid系统的功能实现中,并不具备向用户同时开放WiFi模组的热点和站点两种模式的能力。因而,实践应用中,当智能终端W站点模式利用WiFi接入公司局域网AP之后,希望将另一无显示界面的WiFi设备的数据读取并上传到云端,运样一种需要便会因为该智能终端不能同时开启其自身的热点模式(因其开启必然导致断网)及站点模式而得不到满足。同理,如用户利用智能终端W热点模式与第Ξ方通信的过程中,需W站点模式接入某个局域网获取数据,显然也是做不到的。[0006]可见,基于Amlroid的智能终端在实现热点与站点两种WiFi组网模式运一功能上是先天不足的,因此,可W看出,解决运一问题是对Amlroid智能终端的组网条件进行高效利用的重要前提。[0007]上述问题适宜在WiFiP2P技术规范之下解决,可W考虑令An化oid的WiFi模组构造一个能WSTA模式接入外部网站,同时又能WP2PGO模式提供给其他客户端接入实现网络扩展的框架。由此带来的问题是WP2P方式连接的客户端与服务端,因原本只考虑点对点连接的问题,故其彼此的路由均不会改变,而要实现客户端可W通过服务端连接外部网络,则需要使客户端能够合理地配置自身的路由设置,使得其可W服务端为网关去访问外网。【
发明内容】[0008]本发明的目的在于针对W上存在的至少一方面不足,提供一种智能终端及其网络配置方法。[0009]为了实现该目的,本发明采取如下技术方案:[0010]本发明的一种智能终端网络配置方法,包括如下步骤:[0011]建立符合WiFiP2P规范的网络群组W完成本智能终端的热点模式的启动,使其与本智能终端的站点模式并存工作;[0012]W系统最高权限调用网络守护进程修改网络共享配置信息使连通热点模式与站点模式之间的网络连接;[0013]在客户端接入所述网络群组后,建立该客户端与由所述站点模式所维持的外网的连接。[0014]进一步,受控而启动所述网络群组的建立。[0015]较佳的,通过在用户界面提供控制按键,W用于接收控制指令,W启动所述网络群组的建立。[001W具体的,所述站点模式通过启动系统提供的站点进程即wpa_supp1icant进程而实现。[0017]较佳的,所述站点模式先于热点模式工作。[0018]进一步,启动所述热点模式使其与站点模式并存时,显示用于表征该智能终端处于热点模式和站点模式共存的双模状态的第Ξ方图标。[0019]具体的,通过调用Android系统依照WiFiP2P协议的规范而提供的WifiP化Manager类的createGroup方法实现所述网络群组的建立。[0020]具体的,所述网络守护进程为An化0id系统的化td守护进程,通过该网络守护进程提供的ndc工具控制该网络守护进程完成所述的网络共享配置信息。[0021]具体的,所述网络共享配置信息被修改为具备如下用途:[0022]开通连通热点模式与站点模式之间的网络连接的数据包转发功能;[0023]修正用于杨通热点模式与站点模式之间的网络连接的数据包过滤表的设置内容;[0024]去除客户端共享上网限制解析DNS的选项。[0025]进一步,在修改网络共享配置信息之前,先强制关闭为客户端分配网络配置信息的配置进程。[0026]具体的,所述在客户端接入所述网络群组后,建立该客户端与由所述站点模式所维持的外网的连接的步骤中,包括如下两个方向的处理过程:[0027]接收客户端访问外网的数据包,将其转发经所述站点模式的路径传输给所述的外网;[0028]接收外网访问客户端的数据包,将其转发经所述热点模式的路径传输给该客户玉山乂而。[00巧]进一步,本方法还包括如下步骤:[0030]响应于退出共享上网的用户指令,恢复所述的网络共享配置信息。[0031]本发明的一种智能终端,包括:[0032]建立单元,用于建立符合WiFiP2P规范的网络群组W完成本智能终端的热点模式的启动,使其与本智能终端的站点模式并存工作;[0033]配置单元,用于W系统最高权限调用网络守护进程修改网络共享配置信息使连通热点模式与站点模式之间的网络连接;[0034]通信单元,用于在客户端接入所述网络群组后,建立该客户端与由所述站点模式所维持的外网的连接。[0035]进一步,所述建立单元中,受控而启动所述网络群组的建立。[0036]较佳的,所述建立单元通过在用户界面提供控制按键,W用于接收控制指令,W启动所述网络群组的建立。[0037]具体的,所述建立单元中,所述站点模式通过启动系统提供的站点进程即wpa_supp1icant进程而实现。[0038]较佳的,所述建立单元中,所述站点模式先于热点模式工作。[0039]进一步,所述建立单元,启动所述热点模式使其与站点模式并存时,显示用于表征该智能终端处于热点模式和站点模式共存的双模状态的第Ξ方图标。[0040]具体的,所述建立单元,通过调用Amlroid系统依照WiFiP2P协议的规范而提供的WifiP化Manager类的createGroup方法实现所述网络群组的建立。[0041]具体的,所述配置单元中,所述网络守护进程为Amlroid系统的化td守护进程,通过该网络守护进程提供的ndc工具控制该网络守护进程完成所述的网络共享配置信息。[0042]进一步,所述配置单元中,所述网络共享配置信息被修改为具备如下用途:[0043]开通连通热点模式与站点模式之间的网络连接的数据包转发功能;[0044]修正用于杨通热点模式与站点模式之间的网络连接的数据包过滤表的设置内容;[0045]去除客户端共享上网限制解析DNS的选项。[0046]较佳的,所述配置单元在修改网络共享配置信息之前,先强制关闭为客户端分配网络配置信息的配置进程。[0047]具体的,所述通信单元,被配置为按如下方式处理如下两个方向的数据包:[0048]接收客户端访问外网的数据包,将其转发经所述站点模式的路径传输给所述的外网;[0049]接收外网访问客户端的数据包,将其转发经所述热点模式的路径传输给该客户玉山乂而。[0050]进一步,该智能终端还包括恢复单元,被配置为响应于退出共享上网的用户指令,恢复所述的网络共享配置信息。[0051]与现有技术相比较,本发明至少具有如下优点:[0052]本发明充分利用An化oid系统提供的特性,首先依照WiFiP2P协议的规范建立基于P2PG0(P2PGroupOwner)的网络群组,将智能终端打造成无线热点,使其能够工作于热点模式,与站点模式共同工作,突破Amlroid系统无法自行同时开放热点模式和站点模式两种模式的局限。在此基础上,本发明进一步利用系统最高权限,通过Amlroid系统提供的机审IJ,驱动网络守护进程去修改网络配置信息,确保运种修改使作为服务端的本智能终端能够对接入其热点模式的客户端提供外部网络连接,使得客户端能够借助与网络群组所有者即服务端的连接,来经由服务端的站点模式实现外网访问,从而解决了网络共享的问题。最终,即使不依赖于运营商提供的移动网络,只要服务端能在站点模式接入外网,那么,所述的客户端便能利用服务端的热点模式进行外网共享。[0053]概括而言,本发明的实施,解决了WiFiP2P协议下,客户端与服务端之间的路由配置问题,使得客户端可W经由服务端访问外网。然而,书不尽言,本发明附加的方面和优点将在下面的描述中部分给出,运些将从下面的描述中变得明显,或通过本发明的实践了解到。【附图说明】[0054]本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:[0055]图1为本发明的智能终端网络配置方法的流程示意图;[0056]图2为本发明的智能终端的结构示意图。【具体实施方式】[0057]下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。[005引本
技术领域
技术人员可W理解,除非特意声明,运里使用的单数形式"一"、"一个"、"所述"和"该"也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞"包括"是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被"连接"或"禪接"到另一元件时,它可W直接连接或禪接到其他元件,或者也可W存在中间元件。此外,运里使用的"连接"或"禪接"可W包括无线连接或无线禪接。运里使用的措辞"和/或"包括一个或更多个相关联的列出项的全部或任一单元和全部组合。[0059]本
技术领域
技术人员可W理解,除非另外定义,运里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像运里一样被特定定义,否则不会用理想化或过于正式的含义来解释。[0060]本
技术领域
技术人员可W理解,运里所使用的"终端"、"终端设备"既包括无线信号接收器的设备,其仅具备无发射能力的无线信号接收器的设备,又包括接收和发射硬件的设备,其具有能够在双向通信链路上,进行双向通信的接收和发射硬件的设备。运种设备可W包括:蜂窝或其他通信设备,其具有单线路显示器或多线路显示器或没有多线路显示器的蜂窝或其他通信设备;PCS(PersonalCommunicationsService,个人通信系统),其可W组合语音、数据处理、传真和/或数据通信能力;PDA(PersonalDigitalAssistant,个人数字助理),其可W包括射频接收器、寻呼机、互联网/内联网访问、网络浏览器、记事本、日历和/或GPS(GlobalPositioningSystem,全球定位系统)接收器;常规膝上型和/或掌上型计算机或其他设备,其具有和/或包括射频接收器的常规膝上型和/或掌上型计算机或其他设备。运里所使用的"终端"、"终端设备"可W是便携式、可运输、安装在交通工具(航空、海运和/或陆地)中的,或者适合于和/或配置为在本地运行,和/或w分布形式,运行在地球和/或空间的任何其他位置运行。运里所使用的"终端"、"终端设备"还可W是通信终端、上网终端、音乐/视频播放终端,例如可W是PDA、MID(MobileInternetDevice,移动互联网设备)和/或具有音乐/视频播放功能的移动电话,也可W是智能电视、机顶盒等设备。[0061]本发明的实现,适于为Amlroid提供并安装一个应用程序,由其启动,在获取系统最高权限或者系统开放最高权限的情况下,而向系统提供交互功能,实现本方法所需的控制。[0062]如图1所示,本发明的一种智能终端网络配置方法,包括如下步骤S11-S13:[0063]步骤S11、建立符合WiFiP2P规范的网络群组W完成本智能终端的热点模式的启动,使其与本智能终端的站点模式并存工作。[0064]理论上可W通过An化0id系统的热点进程化stapd来建立所述的热点模式,但是,实测中,hostapd进程启动时,会自动关闭站点进程,导致智能终端无法同时工作于热点模式和站点模式之下,因而,转而采用自行建立网络群组的方式,可W有效避免运一故障的发生。[0065]根据WiFiP2P协议的规范,可W使多个智能终端组在一个网络群组,在该网络群组中,有且只有一个服务端角色,余者为客户端角色。所述的服务端与客户端两种角色,在本发明中,主要相对于WWiFiP2P协议所规范的两部智能终端而言,其中,作为客户端的智能终端的忍片模组工作于该协议所规范的P2P-Client模式下,即表现为客户端角色;而与之相对的本发明的智能终端则工作于该协议所规范的P2P-G;roup0wne;r(P2PGO)模式下,即表现为服务端角色。[0066]Amlroid系统中,封装了一个点对点连接管理类,即WiFiP2pManager,顾名思义,该类即用于依照WiFiP2P协议的规范来管理Amlroid终端之间的点对点连接。该类构造了一个用于建立所述的网络群组的方法函数,具体引用形式为WiFiPSpManager.createGroup(wifip2pmanger.chanenl,wifip2pmanager.ActionListener),调用该方法,可从仓。建一个热点,使智能终端启动热点模式,并且将自身设置为服务端,由此创建的热点还可W供不支持WiFiP2P协议的传统WiFi设备与之连接。由此形成的网络群组,可W使用该类的另一方法函数:requestConnectionInfo(wifip2pman邑er.chanenl,¥1;1^19化1]1日]1日肖日1'.4(31:;[0化131日]1日1')去得到详细的连接信息。运个《^;1^19化1]1;1!'〇连接信息包含了拥有组者也即服务端的地址gro叫OwnerAcWress和一个去说明当前设备是否是运个p2p组的拥有者的标志isGroupOwer,一个p2p的客户端因此可W和p2p组拥有者通过一个socket连接进行通信。[0067]Android操作系统默认情况下,并不允许同一智能终端的WiFi忍片模组同时工作于客户端和服务端两种模式下,但是,通过自行创建所述的网络群组却可解决运一问题,其中createGroup()函数的调用起到关键的作用,其完成了本智能终端的热点模式的启动。[0068]由于本发明重点是希望解决让客户端通过服务端所在的智能设备的WiFi功能访问外网的网络配置问题。在不考虑客户端自行连接外网的前提下,本智能终端能够访问外网,是接入本网络群组的客户端访问外网的前提。因此,较佳的方式中,是使本智能终端在完成上述热点模式的启动之前,便已启动了站点模式。[0069]欲启动Amlroid系统的站点模式,可W通过用户在系统设置页上手动开启或通过系统的站点进程来建立。所述站点进程,特指Android系统自身提供的wpa_swplicant进程,wpa_supplicant本是开源项目源码,被谷歌修改后加入android移动平台,主要是用来支持WEP,WPA/WPA2和WAPI无线协议和加密认证的,而实际上的工作内容是通过socket(不管是wpa_supplicant与上层还是wpa_supplicant与驱动都采用socket通讯)与驱动交互上报数据给用户,用户可1^通过socket发送命令给wpa_supplicant调动驱动来对WiFi芯片操作。简单的说,wpa_supplicant就是WiFi驱动和用户的中转站外加对协议和加密认证的支持。经过编译后的wpa_supplicant源程序可^看到两个主要的可执行工具:wpa_supplicant和wpa_cliDwpa_supplicant是核屯、程序,它和wpa_cli的关系就是服务和客户端的关系:后台运行wpa_supplicant,使用wpa_cli来搜索、设置、和连接网络。[0070]^下提供一个利用wpa_cli来完成网络连接的示例供本领域技术人员参照理解本发明,但不应理解为对本发明的实现的限制。[0071]要实现网络连接功能,首先需要运行wpa_supplicant程序1^加载基本功能;[0072]执行;/system/bin/wpa_supplicant-d-Dwext-iwlan〇-c/data/misc/wifi/wpa_supplic过nt.conf[0073]其中;[0074]-d:增加调试信息[0075]-Dwext:wext,驱动名称[0076]-iwlanO:wlanO,网络接口名称[0077]/system/bin/wpa_supplicant:wpa_supplicant,可执行程序路径[0078]/data/misc/wifi/wpa_supplicant·conf:wpa_supplicant的配置文件路径[00巧]然后,运行命令行工具wpa_cli;[0080]执行;wpa_cli-iwlan〇-p/data/system/wpa_supplleant[0081]注意,-口/(13古3/373古6111/师口3_3啡口1;!_0311古中的师口3_3啡口1;!_0311古并不是可执行程序,而是个控制套接字。[0082]此时会进入交互模式。其中交互模式的命令如下表:[0083]Fullcommand[0084]Shortcommand[008日]Description[0086]sta化s[0087]stat[0088]displaysthecurrentco打打ectio打status[0089]disconnect[0090]disc[0091]preventswpa_supplleantfromconnectingtoanyaccesspoint[0092]quit[0093]q[0094]exitswpa_cli[0095]terminate[0096]term[0097]killswpa_supplleant[0098]reconfigure[0099]recon[0100]reloadswpa_supplicantwiththeconfigurationfilesupplied(-cparameter)[0101]scan[0102]scan[0103]scansforavailableaccesspoi打ts(o打lyscansit,doesn'tdisplayanything)[0104]scan_result[0105]scan_r[0106]displaystheresultsofthelastscan[0107]list_networks[010引list_n[0109]displaysalistofconfigurednetworksandtheirstatus(activeornot,enabledordisabled)[0110]select_network[0111]select_n[0112]selectanetworkamongthosedefinedtoinitiateaconnection(ieselect-network0)[0113]enable-network[0114]enable_n[011日]makesaconfigurednetworkavailableforselection(ieenable-network0)[0116]disable_network[0117]disable_n[011引makesaconfigurednetworkunavailableforselection(iedisable_network0)[0119]remove-network[0120]remove-打[0121]removesanetworkanditsconfigurationfromthelist(ieremove_network0)[0122]add_network[0123]add_n[0124]addsanewnetworktothelist.Itsidwillbecreatedautomatically[01巧]set_network[0126]set_n[0127]showsaveryshortlistofavailableoptionstoconfigureanetworkwhensuppliedwithnoparameters.[0128]Seenextsectionforalistofextremelyusefulparameterstobeusedwithset_networkandget_network.[01巧]get_network[0130]get_n[0131]displaystherequiredparameterforthespecifiednetwork.Seenextsectionforalistofparameters[0132]save_config[0133]save_c[0134]savestheconfiguration[0135]W上命令项可^从六〇虹〇1(1的公开技术文档中查看,此处仅供参考。[0136]设置网络的基本格式的指令为:set_network<networkidXkey〉<parameter〉[〈parameter〉][0137]显示网络信息的基本格式的指令为:get_network<networkidXkey〉[0138]相应的参数如下表:[0139]Key[0140]Description[0141]Parameters[0142]ssid[0143]Accesspointname[0144]string[0145]id_str[0146]Stringidentifyingthenetwork[0147]string[014引priority[0149]ConnectionpriorityoverotherAPs[0150]number(0beingthedefaultlowpriority)[0151]bssid[01己2]Macaddressoftheaccesspoint[0153]macaddress[0154]scan_ssid[0巧日]Enable/disbalessidscan[0156]0,1,2[0157]keyjngmt[01己8]Typeofkeymanagement[0159]WPA-P涨,WPA_EAP,None[0160]pairwise[0161]PairwiseciphersforWPA[0162]CCMPJKIP[0163]group二TKIP[0164]GroupciphersforWPA[0165]CCMP,TKIP,肥P104,肥P40[0166]psk[0167]Pre-SharedKey(clearorencrypted)[016引string[0169]wep_key0[0170]肥Pkey(upto4:wep_key[0123])[0171]string[0172]eap[0173]ExtensibleAuthenticationProtocol[0174]MD5,MSCHAPV2,OTP,GTC,TLS,PEAP,TTLS[0175]identity[0176]EAPidentitystring[0177]string[017引password[01"79]EAPpassword[0180]string[0181]ca-cei't[0182]PathnametoCAcertificatefile[0183]/full/path/to/certificate[0184]client-cei't[018己]Pathnametoclientcertificate[0186]/full/path/to/certificate(PEM/DER)[0187]private_key[0188]Pathnametoaclientprivatekeyfile[0189]/full/path/to/private-key^EM/DER/Pra)[0190]同理,^上参数表也可通过公共途径从Android官方得到,仅供参考,恕不繁述。W下利用一用于连接无加密的AP的具体实例说明如何实现网络连接:[0191]〉add_network(将显示一网络ID,假定返回值为0)[0192]〉set_network0ssid"666"[0193]〉set_networkOkeyjn卵tNONE[0194]>enable_network0[0195]>quit[0196]再利用一用于连接WEP加密的AP的具体实例加W说明:[0197]〉add_network(假定网络ID返回1)[0198]〉set_networklssid"666"[0199]〉set_networklkey_m卵tNONE[0200]>set_networklwep_key0"yourappassword"[0201]>enable_network1[0202]至于连接WPA-PSK/WPA2-PSK加密的AP的示例如下:[0203]〉add_network(假定网络ID返回2)[0204]〉set_network2ssid"666"[0205]>set_network2psk"yourpre-sharedkey"[0206]>enable_network2[0207]到此,wifi模块就能连接上APT。[020引W上是通过命令行工具wpa_cli来实现wifi网络的连接。当然,也可W通过wpa_supp1icant的配置文件来实现连接。[0209]不妨再回顾前面运行wpa_supp1icant时执行的命令:[0210]/system/bin/wpa_supplicant-d-Dwext-iwlan〇-c/data/misc/wifi/wpa_supplic曰nt.conf[0211]我们在执行时加上了-c/data/misc/wifi/wpa_supplicant.conf,故而可W将要连接的AP的设置W-定的格式写入wpa_supplicant.conf配置文件中即可。例如:[0212]ctrl_interface=DIR=/data/system/wpa_supplicantGROUP=systemupdate_config=l[0213]network={[0214]ssid="myaccesspoint"[0215]proto=WPA[0^6]key_m卵t=WPA-PSK[0217]psk="youpasswords"[021引}[0219]可见,即使是调用站点进程启动智能终端WiFi忍片模组的站点模式,也可通过W上运用指令、运用配置文件两种不同方式,来实现由应用程序进程自行控制所述的站点进程的开启,从而使智能终端工作于站点模式之下。[0220]由W上的分析可知,本发明可W借助多种方式激活智能终端的站点模式,并通过调用点对点连接管理类的createGro啡方法来激活智能终端的热点模式,运两种模式可W并存于Amlroid智能终端中。从而使得智能终端能够利用其站点模式接入外网,同时利用热点模式建构一个小型网络。[0221]为使上述的双模状态更易于操作,体现更佳的用户体验,本发明的应用程序进程可W通过对用户界面进行设计来对此加W完善。[0222]用户界面泛指能够用于实现人机交互并且能够接收用户控制指令的显示界面,例如,可W为Android系统的设置页面中的一个选项(或按键,由所述应用程序添加其中,下同),也可W是从桌面呼出的通知栏或者交互页面中的一个选项,还可W是所述应用程序的一个活动组件所构造的页面中的一个选项。[0223]本发明优选如下两种方式,用于接收所述的控制指令:[0224]其一,通过在用户界面提供单个控制按键,W用于一键式地接收所述的控制指令,运种方式便于用户实现一键式操作。[0225]其二,通过在用户界面对应热点模式和站点模式而分别提供控制按键,W分别对应不同按键而产生对应启动相应的模式的控制指令。[0226]根据W上的方式提供的控制按键,通常运些按键可W优选设置在系统桌面通知栏列表处,或者W桌面悬浮窗的方式提供,既便于用户触控控制,又不影响用户视觉效果,当然也可作为系统的默认功能而随用户开启WiFi按键时激活。较佳的,所述应用程序可W将自身设为自启动项,使得系统启动时,可W自行加载所述的按键,从而便于用户操作。[0227]当用户通过所述的用户界面,触控所述的控制按键之后,便产生相应的控制指令,该控制指令将被所述应用程序的进程接收,从而对应的控制热点模式和/或站点模式开启。[0228]具体而言,用户既可W通过单个控制按键来同时开启热点模式和站点模式,也可W通过两个与两种模式相对应的按键来开启,实质上提供了多种操作变化例。对应运些变化,W下进一步示例说明。[0229]设用户界面提供单个控制按键,用户通过该单个控制按键而触发其用户指令,此处便可W先调用createGroupO创建热点。继而,本发明的应用程序进程再自行启动该站点进程,由此便可实现两种模式的并存。反之,也可W先行启动站点进程,在其完成开启之后,再行参照上述示例开启热点模式。也就是说,对应于单个控制按键引起的控制指令,可不同的实施方式灵活安排所述热点模式和站点模式的启动顺序。[0230]而对应用户界面提供不同的控制按键,分别表征开启不同的模式的实例而言,贝U可按用户点击不同控制按键的顺序而按序开启相应的模式,此举并不影响本发明的实施。[0231]在优选的方案中,推荐优先让站点模式先于热点模式开启,在确保本智能终端可W连接外网的情况下,向其他智能终端提供接入功能,可W免除一些无用功,更为节能。[0232]由此可见,将站点模式与热点模式相继启动后,便可W实现两种模式的共存。在此基础上,本发明的应用程序进程可W向用户界面输出一些结果信息,W告知用户该智能终端当前已经处于热点模式和站点模式共存的双模状态。至于所述的结果信息的表达形式,既可W是通过系统消息显示到通知栏中,也可W在桌面上弹窗显示,更优的方式可W是调用一个预设的第Ξ方图标,用于表征该智能终端处于热点模式和站点模式共存的双模状态,将该第Ξ方图标显示到用户界面的系统状态栏中,使得用户更易于获知相应的结果信息。[0233]步骤S12、W系统最高权限调用网络守护进程修改网络共享配置信息使连通热点模式与站点模式之间的网络连接。[0234]设及到对网络守护进程直接调用的操作,依照Amlroid的规范,需要获取系统的最高权限,因而,在获取Amlroid系统最高权限或者Amlroid系统已经开放最高权限的前提下,可W通过对所述网络守护进程进行调用,借此修改设及到网络共享的配置信息,即网络共享配置信息,W便连通热点模式与站点模式之间的网络连接,让客户端可W通过服务端来访问外网。[02巧]所述的网络守护进程,即Netd,化twork化emon的缩写。Netd负责跟一些设及物理端口的网络操作相关的功能实现,例如带宽控制(Bandwi化h),网络地址转换(NAT),个人局域网(pan),PPP链接,S0ft-ap,本智能终端的热点模式所设及的共享上网(Tether)等等……都是按照模块(.cpp+.h)组织在netd文件目录下的。[0236]Amlroid化td相关的基本框架的四大部分:[0237](1化inuxKernel用于检测网络相关的所有事件。[023引(2)化td作为Kerne1(内核层)与Framework(框架层)之间通信的桥梁。[0239](3)框架层操作化td,向化td发送操作命令。[0240](4)应用层与框架层交互,用于用户进行网络的操控。[0241]Amlroid为化td提供了一个测试工具,即ndc,其主要功能有:[0242]监视化td中发生的事件。[0243]支持通过命令行发送命令给化td去执行。ndc的实现原理,便是连接上位于netd进程中的"netd"监听socket,然后从化td接收信息或发送命令给化td。[0244]由此可见,可W通过ndc来驱动网络守护进程执行相关指令,本发明中,实现对网络共享配置信息的修改的功能,便可利用ndc命令来实施。[0245]请先参照如下对Android系统实施的观测过程:[0246]首先,通过分析,发现createGroup()创建热点之后,虽然可W被客户端连接,但其用于向用户反馈DHCP配置信息的配置进程DNSmasq的参数如下:[0247]/system/bin/dnsnmsq-keep-in-fore邑round-no-resolv-no-poll-dhcp-authoritative-dhcp-〇ption-force=43,ANDR0ID_METERED-pid-file-dhcp-range=192.168.42.2,192.168.42.254,化一dhcp-range=192.168.43.2,192.168.43.254,化--dhcp-range=192.168.44.2,192.168.44.254,化一化cp-range=192.168.45.2,192.168.45.254,化一化cp-range=192.168.46.2,192.168.46.254,化一化cp-range=192.168.47.2,192.168.47.254,化一dhcp-range=192.168.48.2,192.168.48.254,化一化cp-range=192.168.49.2,192.168.49.254,化[0248]从中可W看出,其中增加了强制配置序列为43的控制选项即化cp-option-force=43,ANDR0ID_METERED,序号43的官方释义是厂商指定选项,用于表示当前连接为计费连接,在运种情况下,客户端将不能利用服务端的外网连接,W免产生巨额费用。然而,运种设计逻辑是W服务端将通过运营商的计费连接而提供访问外网服务的,但服务端存在WWiFi站点模式建立的免费外网连接的情况,并未被An化oid所兼容。[0249]继而,通过分析An化oid官方文档中对于了日地日祐〇11化〇11日1'(共享控制器)的源代码可知,在运种情况下,该处对ANDR0ID_METER抓进行了规范,然而,却未见默认网关的设置。[02加]而对客户端中进行分析,从core.java,an化oid.net.DhcpInfoInternal也就是化cp客户端那边,利用下述的代码实施检测:[0251][0252]W上的分析表明,如要令客户端通过服务端来连接外网,需要避开上述的控制选项的影响。[0253]进而,通过分析本智能终端的热点模式开启前和开启后的数据包转发开关和数据包过滤表即ip化bles,也发现影响客户端上网的因子。[0254]具体而言,对于数据包转发开关,可W发现,cat/proc/sys/net/ipvVip_forward的结果是1而不是0,因而理论上可W通过echo"l"〉/p;roc/sys/net/ipv4/ip_fo;rwardenable来改变此一开关设置,使其打开数据包转发功能。然而,运种情况下,由于受iptables的影响,即使做出上述的改变,客户端进行外网访问仍然未能杨通。当智能终端的热点模式下的P2p0标识所对应的接口收到数据包,虽会查找路由,并且发到其站点模式下wlanO标识所对应的接口,但是会被ip化b1es的过滤规则所丢弃。[02W]对于iptables,发现其存在两方面的影响,其一是其中包含有将接口p2p0的数据包丢弃的规则,其二是欠缺将智能终端映射到公网的NAT规则。对于前者,可W通过W下指令处理:iptables-DF0RWA畑4,即删除forward里的第4条规则,也即natc化1_F0RWA畑规贝ij。运时候当p2p0收到包,会从wlanO发出。但是运个包的源ip是一个内网ip。因此,需要对后者做处理如下:iptables-tnat-APOSTROUTING-0wlanO-jMASQ肥RADE,即向ip化bles过滤表增加一条nat规则,添加之后,在另一个手机上,便可Wping通外网ip了。由客户端到外网的连接,由此便杨通了。自然的,W及结合实践分析,网关也已经得到正确配置。[0256]通过上述的处理,仅仅解决了IP层的问题,对于DNS解析的功能,则仍未实现。进一步通过分析DNSmasq的配置参数,发现其携带了一no-resolv选项,该选项正是导致影响客户端获取正确的DNS解析的原因。由此,可W通过修改startTethering方法或者增加一个s^dTetheringWithDnsO方法,去掉一n〇-resolv参数。完成运些操作,客户端经服务端到外网,具体到基于域名的万维网的访问,便杨通无阻了。[0257]W上,概括而言,本发明为实现客户端通过服务端访问外网而借助ndc工具驱动网络守护进程所做出的设及到网络共享配置信息的修改,主要设及到W下方面:[0258]其一、开通连通热点模式与站点模式之间的网络连接的数据包转发功能:具体表现为可通过echo指令设置其参数为1来打开。[0259]其二、修正用于杨通热点模式与站点模式之间的网络连接的数据包过滤表的设置内容:具体表现为对ip化bles表格去除相应的过滤条目W及添加NAT映射记录。[0260]其Ξ、去除客户端共享上网限制解析DNS的选项:具体表现为可通过共享控制器(TetherContro11er)的有关方法来去除一n〇-reso1v选项。[0261]由此可见,通过上述的方法,便可使本发明的智能终端实现连通其热点模式与其站点模式下之间的网络连接,为客户端提供接入外网的服务。[0262]W上通过掲示对Amlroid的系统原理的分析过程,掲示了本发明的实现原理,并提供了如何修改网络共享配置信息的一种实施例,除此之外,还可通过W下的方式来修改网络共享配置信息:[0263]运种方式具体而言,即W系统最高权限调用ndc工具通过网络守护进程来实现修改的方式,请参阅如下代码及其说明:[0264]ndcipfwdenable[02化]ndctetherdnsset0114.114.114.114[0266]//如果失败,通常意味着前面有手工操作没有完全撤销。执行ps|gr邱dnsmasq先强制关闭配置进程。如果还有残留进程,例如:[0267]shelliCP8681_A01:/#ps|grepdnsmasq[0268]dhcp355732510272740001a0338b66f61acS/system/bin/dnsmasq[0269]//执行kill3557杀掉,然后[0270]ndctetherstop,//停止共享[0271]ndctether8化的192.168.49.2192.168.49.254//启动共享,配置网段[0^2]ndctetherdnsset0114.114.114.114/7设置DNS[0273]ndcnatenablep化OwlanO0//添加NAT规则[0274]经测试,W上代码所起的效果与上方掲示的手动修改过程一致,经由此段代码作用,数据包转发功能被打开,iptables过滤表得到正确的配置,DNS解析功能也得到正确的维护。因此,本发明的应用程序可W在系统最高权限状态下,在启动热点模式之后,执行运段代码,便实现了对网络共享配置信息的正确修改,客户端便可通过服务端来上网。[0275]多数的Amlroid系统智能终端,由于厂商的限制,并未开放其系统最高权限,或者未成功被ROOT,对于运种情况,W上WND巧旨令直接驱动网络守护进行实施网络共享配置信息的修改的操作将不能成功。因此,需要另辟暧径。[0276]-种改进的方式是将W上WNDC表达的代码封装成一个方法函数(配置接口),对WiFiPSpManager类的开源代码文件即WifiPSpServiceImpI.java进行修改,由于WifiP化Servicelmpl.java可W直接通过mNwService导出的函数实现那些ndc命令,因在,可在里面增加该方法函数,并且导出给WiFiP化Manager类使用,运样,本发明的应用程序只需直接通过WiFiP2pManager类调用该配置接口,即可实施对网络共享配置信息的修改,而无需借助系统最高权限的获取。[0277]由此可见,借助ndc命令控制所述网络守护进程W修改网络共享配置参数的方式也是多样化的。[0278]通过实施上述的多种控制方式,均可使服务端的热点模式和站点模式之间的网络连接互相连通,路由的问题随之有解。[0279]步骤S13、在客户端接入所述网络群组后,建立该客户端与由所述站点模式所维持的外网的连接。[0280]客户端接入服务端提供的网络群组之后,将向服务端发送DHCP请求,服务端的配置进程读取经上述修改之后的正确的网络共享配置信息,反馈给客户端。客户端据此完成自身的网络设置后,便可经作为服务端本发明智能终端的热点接口、站点接口而访问外网。对于本智能终端而言,当其接收客户端访问外网的数据包时,将该数据包转发经所述站点模式的路径传输给所述的外网;当其接收外网访问客户端的数据包时,将其转发经所述热点模式的路径传输给该客户端。[0281]进一步的,为完善本发明的应用程序进程的功能,可W增加后续步骤:该步骤响应于退出共享上网的用户指令,恢复所述的网络共享配置信息。[0282]具体而言,本发明的应用程序可W参照前述的方式,向用户界面提供一个共享上网的控制按键,如沿用上述已经提供到用户界面的控制按键的一个复选控制操作也可。当该控制按键被触发时,便产生所述的用户指令,受该用户指令的作用,本发明便可实施断开所述的热点模式,由此便自动断开外部连接。[0283]进一步,可W采用更为彻底的方式,先行对前述处理过程产生的网络共享配置信息进行清理,例如,参阅W下的ndc指令:[0284]ndcipfwddisable//关闭数据包转发功能[02化]ndctetherstop//停止上网共享功能[02化]ndcnatdisableP化OwlanO0//关闭NAT映射功能[0287]通过本发明的应用程序进程执行上述的命令,便可通过SOCKET端口控制网络守护进程执行相应的功能,从而避免前述的对网络共享配置信息对本机使用所带来的潜在的影响。可W知晓,在本发明的应用程序进程中直接调用上述的命令控制所述的网络守护进程的前提是已经获取系统的最高权限。[0288]同理,根据上述构造方法函数并将其植入到WiFiP2pManager中的示例可知,此处的清理代码完全可W同样的方法被构造为方法函数(清退接口),添加到WiFiP2pManager类的代码文件中,导出为该类的相应的成员函数,后续直接由本发明的应用程序进程调用该清退接口即可执行,而不必考虑当前是否已经获得系统ROOT权限。[0289]综上所述,本发明的方法解决了Amlroid智能终端同时开启热点模式和站点模式的技术难题,并且允许接入其热点模式下的网络群组的客户端经由其站点模式相对应的外网接口访问外网。[0290]根据计算机软件的模块化思维,本发明还提供一种智能终端,该智能终端包括建立单元11、配置单元12W及通信单元13,W下介绍各个单元所实现的具体功能:[0291]所述的建立单元11,用于建立符合WiFiP2P规范的网络群组W完成本智能终端的热点模式的启动,使其与本智能终端的站点模式并存工作。[0292]理论上可W通过An化0id系统的热点进程化stapd来建立所述的热点模式,但是,实测中,hostapd进程启动时,会自动关闭站点进程,导致智能终端无法同时工作于热点模式和站点模式之下,因而,转而采用自行建立网络群组的方式,可W有效避免运一故障的发生。[0293]根据WiFiP2P协议的规范,可W使多个智能终端组在一个网络群组,在该网络群组中,有且只有一个服务端角色,余者为客户端角色。所述的服务端与客户端两种角色,在本发明中,主要相对于WWiFiP2P协议所规范的两部智能终端而言,其中,作为客户端的智能终端的忍片模组工作于该协议所规范的P2P-Client模式下,即表现为客户端角色;而与之相对的本发明的智能终端则工作于该协议所规范的P2P-G;roup0wne;r(P2PGO)模式下,即表现为服务端角色。[0294]Amlroid系统中,封装了一个点对点连接管理类,即WiFiP2pManager,顾名思义,该类即用于依照WiFiP2P协议的规范来管理Amlroid终端之间的点对点连接。该类构造了一个用于建立所述的网络群组的方法函数,具体引用形式为WiFiPSpManager.createGroup(wifip2pmanger.chanenl,wifip2pmanager.ActionListener),调用该方法,可从仓。建一个热点,使智能终端启动热点模式,并且将自身设置为服务端,由此创建的热点还可W供不支持WiFiP2P协议的传统WiFi设备与之连接。由此形成的网络群组,可W使用该类的另一方法函数:requestConnectionInfo(wifip2pman邑er.chanenl,¥1;1^19化1]1日]1日肖日1'.4(31:;[0化131日]1日1')去得到详细的连接信息。运个《^;1^19化1]1;1!'〇连接信息包含了拥有组者也即服务端的地址gro叫OwnerAcWress和一个去说明当前设备是否是运个p2p组的拥有者的标志isGroupOwer,一个p2p的客户端因此可W和p2p组拥有者通过一个socket连接进行通信。[0巧日]Android操作系统默认情况下,并不允许同一智能终端的WiFi忍片模组同时工作于客户端和服务端两种模式下,但是,通过自行创建所述的网络群组却可解决运一问题,其中createGroup()函数的调用起到关键的作用,其完成了本智能终端的热点模式的启动。[0296]由于本发明重点是希望解决让客户端通过服务端所在的智能设备的WiFi功能访问外网的网络配置问题。在不考虑客户端自行连接外网的前提下,本智能终端能够访问外网,是接入本网络群组的客户端访问外网的前提。因此,较佳的方式中,是使本智能终端在完成上述热点模式的启动之前,便已启动了站点模式。[0297]欲启动Amlroid系统的站点模式,可W通过用户在系统设置页上手动开启或通过系统的站点进程来建立。所述站点进程,特指Android系统自身提供的wpa_supp1icant进程,wpa_supplicant本是开源项目源码,被谷歌修改后加入an化oid移动平台,主要是用来支持WEP,WPA/WPA2和WAPI无线协议和加密认证的,而实际上的工作内容是通过socket(不管是wpa_supplicant与上层还是wpa_supplicant与驱动都采用socket通讯)与驱动交互上报数据给用户,用户可W通过socket发送命令给wpa_supplicant调动驱动来对WiFi忍片操作。简单的说,wpa_supp1icant就是WiF巧区动和用户的中转站外加对协议和加密认证的支持。经过编译后的wpa_supplicant源程序可W看到两个主要的可执行工具:wpa_supplicant和wpa_cliewpa_supplicant是核屯、程序,它和wpa_cli的关系就是服务和客户端的关系:后台运行wpa_supp1icant,使用wpa_c1i来捜索、设置、和连接网络。[0298]W下提供一个利用wpa_cli来完成网络连接的示例供本领域技术人员参照理解本发明,但不应理解为对本发明的实现的限制。[0299]要实现网络连接功能,首先需要运行wpa_supplicant程序W加载基本功能;[0300]执行;/system/bin/wpa_supplicant-d-Dwext-iwlanO-c/data/misc/wifi/wpa_supplic曰nt.conf[0301]其中;[0302]-d:增加调试信息[0303]-Dwext:wext,驱动名称[0304]-iwlan0:wlan0,网络接口名称[03化]/syStem/bin/wpa_supp1icant:wpa_supp1icant,可执行程序路径[0306]/da1:a/misc/wifi/wpa_su卵licant.conf:wpa_su卵licant的配置文件路径[0307]然后,运行命令行工具wpa_cli;[0308]执行;wpa_cli-iwlan〇-p/data/system/wpa_supplleant[0309]注意,_9/(1日1:日/37316111/可)日_3啡91;[。日]11:中的可)日_3啡91;[。日]11:并不是可执行程序,而是个控制套接字。[0310]此时会进入交互模式。其中交互模式的命令如下表:[0311]化11command[0312]Sho;rtcommand[0313]Description[0314]status[0315]stat[0316]displaysthecurrentco打打ectio打status[0317]disconnect[031引disc[0319]preventswpa_supplleantfromconnectingtoanyaccesspoint[0320]quit[0321]q[0322]exitswpa_cli[0323]terminate[0324]term[032己]killswpa_supplleant[0326]reconfigure[0327]recon[032引reloadswpa_supplicantwiththeconfigurationfilesupplied(-cparameter)[0329]scan[0330]scan[0331]scansforavailableaccesspoi打ts(o打lyscansit,doesn'tdisplayanything)[0332]scan_result[0333]scan_r[0334]displaystheresultsofthelastscan[033引list_networks[0336]list_n[0337]displaysalistofconfigurednetworksandtheirstatus(activeornot,enabledordisabled)[0338]select_network[0339]select_n[0340]selectanetworkamongthosedefinedtoinitiateaconnection(ieselect-network0)[0341]enable_network[0342]enable_n[0343]makesaconfigurednetworkavailableforselection(ieenable-network0)[0344]disable_network[0345]disable_n[0346]makesaconfigurednetworkunavailableforselection(iedisable_network0)[0347]remove_network[034引remove_n[0349]removesanetworkanditsconfigurationfromthelist(ieremove_network0)[0350]add_network[0:3日1]add_n[03日2]addsanewnetworktothelist.Itsidwillbecreatedautomatically[03己3]set_network[0巧4]set_n[03日日]showsaveryshortlistofavailableoptionstoconfigureanetworkwhensuppliedwithnoparameters.[03日6]Seenextsectionforalistofextremelyusefulparameterstobeusedwithset_networkandget_network.[03己7]get_network[0:3日引get_n[03己9]displaystherequiredparameterforthespecifiednetwork.Seenextsectionforalistofparameters[0360]save_config[0361]save_c[0362]savestheconfiguration[0363]W上命令项可^从六〇虹〇1(1的公开技术文档中查看,此处仅供参考。[0364]设置网络的基本格式的指令为:set_network<networkidXkey〉<parameter〉[〈parameter〉][0365]显示网络信息的基本格式的指令为:get_network<networkidXkey〉[0366]相应的参数如下表:[0367]Key[0368]Description[0369]Parameters[0370]ssid[0371]Accesspointname[0372]string[0373]id_str[0374]Stringidentifyingthenetwork[0375]string[0376]priority[0377]ConnectionpriorityoverotherAPs[037引number(Obeingthedefaultlowpriority)[0379]bssid[0380]Macaddressoftheaccesspoint[0381]macad虹ess[0382]scan_ssid[0383]Enable/disbalessidscan[0384]0,1,2[0385]keyjngmt[0386]Typeofkeymanagement[0387]WPA-P涨,WPA_EAP,None[038引pairwise[0389]PairwiseciphersforWPA[0390]CCMPJKIP[0391]group二TKIP[0392]GroupciphersforWPA[0393]CCMP,TKIP,肥P104,肥P40[0394]psk[039己]Pre-SharedKey(clearorencrypted)[0396]string[0397]wep_key0[0398]肥Pkey(upto4:wep_key[0123])[0399]string[0400]eap[0401]ExtensibleAuthenticationProtocol[0402]MD5,MSCHAPV2,OTP,GTC,TIS,PEAP,TTLSidentity[0403]EAPidentitystring[0404]string[0405]password[0406]EAPpassword[0407]string[040引ca_cert[0409]PathnametoCAcertificatefile[0410]/full/path/to/certificate[0411]client-Cei't[0412]Pathnametoclientcertificate[0413]/full/path/to/certificate(PEM/DER)[0414]private_key[041己]Pathnametoaclientprivatekeyfile[0416]/full/path/to/private-key^EM/DER/Pra)[0417]同理,^上参数表也可通过公共途径从Android官方得到,仅供参考,恕不繁述。W下利用一用于连接无加密的AP的具体实例说明如何实现网络连接:[0418]〉add_network(将显示一网络ID,假定返回值为0)[0419]〉set_network0ssid"666"[0420]〉set_networkOkeyjn卵tNONE[0421]>enable_network0[0422]>quit[0423]再利用一用于连接WEP加密的AP的具体实例加W说明:[0424]〉add_network(假定网络ID返回1)[04巧]〉set_networklssid"666"[0426]〉set_networkIkeyjngmtNONE[0427]〉set_networklwep_key0"yourappassword"[0428]>enable_network1[0429]至于连接WPA-PSK/WPA2-P涨加密的AP的示例如下:[0430]〉add_network(假定网络ID返回2)[0431]〉set_network2ssid"666"[0432]>set_network2psk"yourpre-sharedkey"[0433]〉enab1e_network2[0434]到此,wifi模块就能连接上AP了。[0435]W上是通过命令行工具wpa_cli来实现wifi网络的连接。当然,也可W通过wpa_supplicant的配置文件来实现连接。[0436]不妨再回顾前面运行wpa_supplicant时执行的命令:[0437]/system/bin/wpa_supplicant-d-Dwext-iwlan〇-c/data/misc/wifi/wpa_supplic过nt.conf[0438]我们在执行时加上了-c/data/misc/wifi/wpa_swplicant.conf,故而可W将要连接的AP的设置1^一定的格式写入wpa_supplicant.conf配置文件中即可。例如:[0439]ctrl_interface=DIR=/data/system/wpa_supplicantG民0UP=systemupdate-config=1[0440]network二{[0441]ssid="myaccesspoint"[0442]proto二WPA[0443]keyjngmt二WPA-P涨[0444]psk="youpasswords"[0445]}[0446]可见,即使是调用站点进程启动智能终端WiFi芯片模组的站点模式,也可通过W上运用指令、运用配置文件两种不同方式,来实现由应用程序进程自行控制所述的站点进程的开启,从而使智能终端工作于站点模式之下。[0447]由^上的分析可知,本发明可W借助多种方式激活智能终端的站点模式,并通过调用点对点连接管理类的createGroup方法来激活智能终端的热点模式,这两种模式可^并存于Android智能终端中。从而使得智能终端能够利用其站点模式接入外网,同时利用热点模式建构一个小型网络。[0448]为使上述的双模状态更易于操作,体现更佳的用户体验,本发明的应用程序进程可^通过对用户界面进行设计来对此加W完善。[0449]用户界面泛指能够用于实现人机交互并且能够接收用户控制指令的显示界面,例如,可W为Android系统的设置页面中的一个选项(或按键,由所述应用程序添加其中,下同),也可W是从桌面呼出的通知栏或者交互页面中的一个选项,还可W是所述应用程序的一个活动组件所构造的页面中的一个选项。[0450]本发明优选如下两种方式,用于接收所述的控制指令:[0451]其一,通过在用户界面提供单个控制按键,W用于一键式地接收所述的控制指令,运种方式便于用户实现一键式操作。[0452]其二,通过在用户界面对应热点模式和站点模式而分别提供控制按键,W分别对应不同按键而产生对应启动相应的模式的控制指令。[0453]根据W上的方式提供的控制按键,通常运些按键可W优选设置在系统桌面通知栏列表处,或者W桌面悬浮窗的方式提供,既便于用户触控控制,又不影响用户视觉效果,当然也可作为系统的默认功能而随用户开启WiFi按键时激活。较佳的,所述应用程序可W将自身设为自启动项,使得系统启动时,可W自行加载所述的按键,从而便于用户操作。[0454]当用户通过所述的用户界面,触控所述的控制按键之后,便产生相应的控制指令,该控制指令将被所述应用程序的进程接收,从而对应控制热点模式和/或站点模式开启。[0455]具体而言,用户既可W通过单个控制按键来希望同时开启热点模式和站点模式,也可W通过两个与两种模式相对应的按键来开启,实质上提供了多种操作变化例。对应运些变化,W下进一步示例说明。[0456]设用户界面提供单个控制按键,用户通过该单个控制按键而触发其用户指令,此处便可W先调用createGroupO创建热点。继而,本发明的应用程序进程再自行启动该站点进程,由此便可实现两种模式的并存。反之,也可W先行启动站点进程,在其完成开启之后,再行参照上述示例开启热点模式。也就是说,对应于单个控制按键引起的控制指令,可不同的实施方式灵活安排所述热点模式和站点模式的启动顺序。[0457]而对应用户界面提供不同的控制按键,分别表征开启不同的模式的实例而言,贝U可按用户点击不同控制按键的顺序而按序开启相应的模式,此举并不影响本发明的实施。[0458]在优选的方案中,推荐优先让站点模式先于热点模式开启,在确保本智能终端可W连接外网的情况下,向其他智能终端提供接入功能,可W免除一些无用功,更为节能。[0459]由此可见,将站点模式与热点模式相继启动后,便可W实现两种模式的共存。在此基础上,本发明的应用程序进程可W向用户界面输出一些结果信息,W告知用户该智能终端当前已经处于热点模式和站点模式共存的双模状态。至于所述的结果信息的表达形式,既可W是通过系统消息显示到通知栏中,也可W在桌面上弹窗显示,更优的方式可W是调用一个预设的第Ξ方图标,用于表征该智能终端处于热点模式和站点模式共存的双模状态,将该第Ξ方图标显示到用户界面的系统状态栏中,使得用户更易于获知相应的结果信息。[0460]所述的配置单元12,被配置为W系统最高权限调用网络守护进程修改网络共享配置信息使连通热点模式与站点模式之间的网络连接。[0461]设及到对网络守护进程直接调用的操作,依照Amlroid的规范,需要获取系统的最高权限,因而,在获取Amlroid系统最高权限或者Amlroid系统已经开放最高权限的前提下,可W通过对所述网络守护进程进行调用,借此修改设及到网络共享的配置信息,即网络共享配置信息,w便连通热点模式与站点模式之间的网络连接,让客户端可w通过服务端来访问外网。[0462]所述的网络守护进程,即Netd,化twork化emon的缩写。Netd负责跟一些设及物理端口的网络操作相关的功能实现,例如带宽控制(Bandwi化h),网络地址转换(NAT),个人局域网(pan),PPP链接,S0ft-ap,本智能终端的热点模式所设及的共享上网(Tether)等等……都是按照模块(.cpp+.h)组织在netd文件目录下的。[0463]Amlroid化td相关的基本框架的四大部分:[0464](1化inuxKernel用于检测网络相关的所有事件。[0465](2)化td作为Kerne1(内核层)与Framework(框架层)之间通信的桥梁。[0466](3)框架层操作化td,向化td发送操作命令。[0467](4)应用层与框架层交互,用于用户进行网络的操控。[0468]Amlroid为化td提供了一个测试工具,即ndc,其主要功能有:[0469]监视化td中发生的事件。[0470]支持通过命令行发送命令给化td去执行。ndc的实现原理,便是连接上位于netd进程中的"netd"监听socket,然后从化td接收信息或发送命令给化td。[0471]由此可见,可W通过ndc来驱动网络守护进程执行相关指令,本发明中,实现对网络共享配置信息的修改的功能,便可利用ndc命令来实施。[0472]请先参照如下对Android系统实施的观测过程:[0473]首先,通过分析,发现createGroup()创建热点之后,虽然产生可W被客户端连接,但其用于向用户反馈DHCP配置信息的配置进程DNSmasq的参数如下:[0474]/system/bin/dnsnmsq-keep-in-fore邑round-no-resolv-no-poll-dhcp-authoritative-dhcp-〇ption-force=43,ANDR0ID_METERED-pid-file-dhcp-range=192.168.42.2,192.168.42.254,化一dhcp-range=192.168.43.2,192.168.43.254,化--dhcp-range=192.168.44.2,192.168.44.254,化一化cp-range=192.168.45.2,192.168.45.254,化一化cp-range=192.168.46.2,192.168.46.254,化一化cp-range=192.168.47.2,192.168.47.254,化一dhcp-range=192.168.48.2,192.168.48.254,化一化cp-range=192.168.49.2,192.168.49.254,化[0475]从中可W看出,其中增加了强制配置序列为43的控制选项即化cp-option-force=43,ANDR0ID_METERED,序号43的官方释义是厂商指定选项,用于表示当前连接为计费连接,在运种情况下,客户端将不能利用服务端的外网连接,W免产生巨额费用。然而,运种设计逻辑是W服务端将通过运营商的计费连接而提供访问外网服务的,但服务端存在WWiFi站点模式建立的免费外网连接的情况,并未被An化oid所兼容。[0476]继而,通过分析An化oid官方文档中对于了日地日祐〇11化〇11日1'(共享控制器)的源代码可知,在运种情况下,该处对ANDR0ID_METER抓进行了规范,然而,却未见默认网关的设置。[0477]而对客户端中进行分析,从core.java,an化oid.net.DhcpInfoInternal也就是化cp客户端那边,利用下述的代码实施检测:[0480]W上的分析表明,如要令客户端通过服务端来连接外网,需要避开上述的控制选项的影响。[0481]进而,通过分析本智能终端的热点模式开启前和开启后的数据包转发开关和数据包过滤表即ip化bles,也发现影响客户端上网的因子。[0482]具体而言,对于数据包转发开关,可W发现,cat/p;roc/sys/net/ipvVip_fo;rward的结果是1而不是0,因而理论上可W通过echo"l"〉/p;roc/sys/net/ipv4/ip_fo;rwardenable来改变此一开关设置,使其打开数据包转发功能。然而,运种情况下,由于受iptables的影响,即使做出上述的改变,客户端进行外网访问仍然未能杨通。当智能终端的热点模式下的P2p0标识所对应的接口收到数据包,虽会查找路由,并且发到其站点模式下wlanO标识所对应的接口,但是会被ip化b1es的过滤规则所丢弃。[0483]对于iptables,发现其存在两方面的影响,其一是其中包含有将接口p2p0的数据包丢弃的规则,其二是欠缺将智能终端映射到公网的NAT规则。对于前者,可W通过W下指令处理:iptables-DFORWA畑4,即删除forward里的第4条规则,也即natc化1_F0RWA畑规贝ij。运时候当p2p0收到包,会从wlanO发出。但是运个包的源ip是一个内网ip。因此,需要对后者做处理如下:iptables-tnat-APOSTROUTING-0wlanO-jMASQ肥RADE,即向ip化bles过滤表增加一条nat规则,添加之后,在另一个手机上,便可Wping通外网ip了。由客户端到外网的连接,由此便杨通了。自然的,W及结合实践分析,网关也已经得到正确配置。[0484]通过上述的处理,仅仅解决了IP层的问题,对于DNS解析的功能,则仍未实现。进一步通过分析DNSmasq的配置参数,发现其携带了一no-resolv选项,该选项正是导致影响客户端获取正确的DNS解析的原因。由此,可W通过修改startTethering方法或者增加一个s^dTetheringWithDnsO方法,去掉一n〇-resolv参数。完成运些操作,客户端经服务端到外网,具体到基于域名的万维网的访问,便杨通无阻了。[0485]W上,概括而言,本发明为实现客户端通过服务端访问外网而借助ndc工具驱动网络守护进程所做出的设及到网络共享配置信息的修改,主要设及到W下方面:[0486]其一、开通连通热点模式与站点模式之间的网络连接的数据包转发功能:具体表现为可通过echo指令设置其参数为1来打开。[0487]其二、修正用于杨通热点模式与站点模式之间的网络连接的数据包过滤表的设置内容:具体表现为对ip化bles表格去除相应的过滤条目W及添加NAT映射记录。[0488]其Ξ、去除客户端共享上网限制解析DNS的选项:具体表现为可通过共享控制器(TetherContro11er)的有关方法来去除一n〇-reso1v选项。[0489]由此可见,通过上述的方法,便可使本发明的智能终端实现连通其热点模式与其站点模式下之间的网络连接,为客户端提供接入外网的服务。[0490]W上通过掲示对Amlroid的系统原理的分析过程,掲示了本发明的实现原理,并提供了如何修改网络共享配置信息的一种实施例,除此之外,还可通过W下的方式来修改网络共享配置信息:[0491]运种方式具体而言,即W系统最高权限调用ndc工具通过网络守护进程来实现修改的方式,请参阅如下代码及其说明:[0492]ndcipfwdenable[0493]ndctetherdnsset0114.114.114.114[0494]//如果失败,通常意味着前面有手工操作没有完全撤销。执行ps|gr邱dnsmasq先强制关闭配置进程。如果还有残留进程,例如:[04巧]shell@CP8681_A01:/邮SIgrepdnsmasq[0496]dhcp355732510272740001a0338b66f61acS/system/bin/dnsmasq[0497]//执行kill3557杀掉,然后[0498]ndctetherstop,//停止共享[0499]ndctether8化的192.168.49.2192.168.49.254//启动共享,配置网段[0如0]ndctetherdnsset0114.114.114.114/7设置DNS[0如1]ndcnatenablep化OwlanO0//添加NAT规则[0502]经测试,W上代码所起的效果与上方掲示的手动修改过程一致,经由此段代码作用,数据包转发功能被打开,iptables过滤表得到正确的配置,DNS解析功能也得到正确的维护。因此,本发明的应用程序可W在系统最高权限状态下,在启动热点模式之后,执行运段代码,便实现了对网络共享配置信息的正确修改,客户端便可通过服务端来上网。[0503]多数的Amlroid系统智能终端,由于厂商的限制,并未开放其系统最高权限,或者未成功被ROOT,对于运种情况,W上WND巧旨令直接驱动网络守护进行实施网络共享配置信息的修改的操作将不能成功。因此,需要另辟暧径。[0504]-种改进的方式是将W上WNDC表达的代码封装成一个方法函数(配置接口),对WiFiPSpManager类的开源代码文件即WifiPSpServiceImpI.java进行修改,由于WifiP化Servicelmpl.java可W直接通过mNwService导出的函数实现那些ndc命令,因在,可在里面增加该方法函数,并且导出给WiFiP化Manager类使用,运样,本发明的应用程序只需直接通过WiFiP2pManager类调用该配置接口,即可实施对网络共享配置信息的修改,而无需借助系统最高权限的获取。[0505]由此可见,借助ndc命令控制所述网络守护进程W修改网络共享配置参数的方式也是多样化的。[0506]通过实施上述的多种控制方式,均可使服务端的热点模式和站点模式之间的网络连接互相连通,路由的问题随之有解。[0507]所述的通信单元13,用于在客户端接入所述网络群组后,建立该客户端与由所述站点模式所维持的外网的连接。[0508]客户端接入服务端提供的网络群组之后,将向服务端发送DHCP请求,服务端的配置进程读取经上述修改之后的正确的网络共享配置信息,反馈给客户端。客户端据此完成自身的网络设置后,便可经作为服务端本发明智能终端的热点接口、站点接口而访问外网。对于本智能终端而言,当其接收客户端访问外网的数据包时,将该数据包转发经所述站点模式的路径传输给所述的外网;当其接收外网访问客户端的数据包时,将其转发经所述热点模式的路径传输给该客户端。[0509]进一步的,为完善本发明的应用程序进程的功能,可W增加恢复单元,该恢复单元被配置为响应于退出共享上网的用户指令,恢复所述的网络共享配置信息。[0510]具体而言,本发明的应用程序可W参照前述的方式,向用户界面提供一个共享上网的控制按键,如沿用上述已经提供到用户界面的控制按键的一个复选控制操作也可。当该控制按键被触发时,便产生所述的用户指令,受该用户指令的作用,本发明便可实施断开所述的热点模式,由此便自动断开外部连接。[0511]进一步,可W采用更为彻底的方式,先行对前述处理过程产生的网络共享配置信息进行清理,例如,参阅W下的ndc指令:[0512]ndcipfwddisable//关闭数据包转发功能[化13]ndctetherstop//停止上网共享功能[0514]ndcnatdisableP化OwlanO0//关闭NAT映射功能[0515]通过本发明的应用程序进程执行上述的命令,便可通过SOCKET端口控制网络守护进程执行相应的功能,从而避免前述的对网络共享配置信息对本机使用所带来的潜在的影响。可W知晓,在本发明的应用程序进程中直接调用上述的命令控制所述的网络守护进程的前提是已经获取系统的最高权限。[0516]同理,根据上述构造方法函数并将其植入到WiFiP2pManager中的示例可知,此处的清理代码完全可W同样的方法被构造为方法函数(清退接口),添加到WiFiP2pManager类的代码文件中,导出为该类的相应的成员函数,后续直接由本发明的应用程序进程调用该清退接口即可执行,而不必考虑当前是否已经获得系统ROOT权限。[0517]综上所述,本发明的方法解决了Amlroid智能终端同时开启热点模式和站点模式的技术难题,并且允许接入其热点模式下的网络群组的客户端经由其站点模式相对应的外网接口访问外网。[0518]概而言之,通过本发明的处理,Amlroid系统的智能终端便具备了双模功能,也即同时既可充当热点供其他设备接入,也可充当站点接入外部网络接入点,并且可W起到路由器的作用,允许接入该智能终端的客户端设备通过该智能终端访问外网。[0519]本
技术领域
技术人员可W理解,本发明包括设及用于执行本申请中所述操作中的一项或多项的设备。运些设备可W为所需的目的而专口设计和制造,或者也可W包括通用计算机中的已知设备。运些设备具有存储在其内的计算机程序,运些计算机程序选择性地激活或重构。运样的计算机程序可W被存储在设备(例如,计算机)可读介质中或者存储在适于存储电子指令并分别禪联到总线的任何类型的介质中,所述计算机可读介质包括但不限于任何类型的盘(包括软盘、硬盘、光盘、CD-ROM、和磁光盘)、R0M(Read-化lyMemory,只读存储器)、RAM(RandomAccessMemory,随即存储器)、EPR0M化rasableProgrammableRead-OnlyMemory,可擦写可编程只读存储器)、EEPR0M化lectricallyErasableProgrammableReadH3nlyMemory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡片。也就是,可读介质包括由设备(例如,计算机)w能够读的形式存储或传输信息的任何介质。[0520]本
技术领域
技术人员可W理解,可W用计算机程序指令来实现运些结构图和/或框图和/或流图中的每个框W及运些结构图和/或框图和/或流图中的框的组合。本
技术领域
技术人员可W理解,可W将运些计算机程序指令提供给通用计算机、专业计算机或其他可编程数据处理方法的处理器来实现,从而通过计算机或其他可编程数据处理方法的处理器来执行本发明公开的结构图和/或框图和/或流图的框或多个框中指定的方案。[0521]本
技术领域
技术人员可W理解,本发明中已经讨论过的各种操作、方法、流程中的步骤、措施、方案可W被交替、更改、组合或删除。进一步地,具有本发明中已经讨论过的各种操作、方法、流程中的其他步骤、措施、方案也可W被交替、更改、重排、分解、组合或删除。进一步地,现有技术中的具有与本发明中公开的各种操作、方法、流程中的步骤、措施、方案也可W被交替、更改、重排、分解、组合或删除。[0522]W上所述仅是本发明的部分实施方式,应当指出,对于本
技术领域
的普通技术人员来说,在不脱离本发明原理的前提下,还可W做出若干改进和润饰,运些改进和润饰也应视为本发明的保护范围。【主权项】1.一种智能终端网络配置方法,其特征在于,包括如下步骤:建立符合WiFiP2P规范的网络群组以完成本智能终端的热点模式的启动,使其与本智能终端的站点模式并存工作;以系统最高权限调用网络守护进程修改网络共享配置信息使连通热点模式与站点模式之间的网络连接;在客户端接入所述网络群组后,建立该客户端与由所述站点模式所维持的外网的连接。2.根据权利要求1所述的方法,其特征在于,受控而启动所述网络群组的建立。3.根据权利要求2所述的方法,其特征在于,通过在用户界面提供控制按键,以用于接收控制指令,以启动所述网络群组的建立。4.根据权利要求1所述的方法,其特征在于,所述站点模式通过启动系统提供的站点进程即wpa_supp1icant进程而实现。5.根据权利要求1所述的方法,其特征在于,所述站点模式先于热点模式工作。6.根据权利要求1所述的方法,其特征在于,启动所述热点模式使其与站点模式并存时,显示用于表征该智能终端处于热点模式和站点模式共存的双模状态的第三方图标。7.根据权利要求1所述的方法,其特征在于,通过调用Android系统依照WiFiP2P协议的规范而提供的WifiP2pManager类的createGroup方法实现所述网络群组的建立。8.根据权利要求1所述的方法,其特征在于,所述网络守护进程为Android系统的Netd守护进程,通过该网络守护进程提供的ndc工具控制该网络守护进程完成所述的网络共享配置信息。9.根据权利要求1所述的方法,其特征在于,所述网络共享配置信息被修改为具备如下用途:开通连通热点模式与站点模式之间的网络连接的数据包转发功能;修正用于畅通热点模式与站点模式之间的网络连接的数据包过滤表的设置内容;去除客户端共享上网限制解析DNS的选项。10.-种智能终端,其特征在于,包括:建立单元,用于建立符合WiFiP2P规范的网络群组以完成本智能终端的热点模式的启动,使其与本智能终端的站点模式并存工作;配置单元,用于以系统最高权限调用网络守护进程修改网络共享配置信息使连通热点模式与站点模式之间的网络连接;通信单元,用于在客户端接入所述网络群组后,建立该客户端与由所述站点模式所维持的外网的连接。【文档编号】H04W88/06GK106060970SQ201610141032【公开日】2016年10月26日【申请日】2016年3月11日公开号201610141032.2,CN106060970A,CN106060970A,CN201610141032,CN-A-106060970,CN106060970A,CN106060970A,CN201610141032,CN201610141032.2【发明人】韦巧,胡宇光,朱翼鹏【申请人】北京奇虎科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1