Android-WifiP2pManager-官方API文档翻译.docx
WifiPlpManager这个类供应了API来管理Wi-Fi点对点连接。这使得应用可以发觉存在的P2P点、建立与其他P2P点的连接以及搜j获得全部P2P点的名单.节一个通过运用wifi的P2P连接生成时,设备接着保持者在移动或其他任何可用的网络设备上的互联网链接。这个API是以异步方式来响应一个应用通过该应用供应的监听回调(IiStenercallbacks)。在做任何p2p操作前,应用须要运用initialize(Context,1.ooper,WifiP2pManager.ChanneI1.iStener)来做初始化。大部分询用的应用须要WifiP2pM<j11ager.Adion1.-Stener实例来接收回调OnSUCCeSS()OronFaiIUre(int)这个动作返问了初始化动作是胜利还是失败的标识,假如失败,则回由可能是如下三种的其中种:ERRoR,P2PUNSUPPORTED.BUSY.成月J程.序不J"通过discoverPeers(KitiP2pManager.ChannelfWifiP2pManager.Action1.istener)来初始化p2p点搜寻。应用的一个初始化完成的搜寻恳求在设备起先连接到一个P2P点、形成一个P2P组或者是一个明确的指令(StOPPeerDlSCCVery(Nif,P2pHanager.Channel,WifiP2pManager.ACtion1.iStener)之前都是保持存活的.应用程序可以通过监听WlFIP2PDIScOVERYCHANGEDAeTlON来知晓一个p2p点司点搜寻是在运行还是已经停止.另外,,WIFIP2PPEERSCHANGEDACTloN可表明火/到的p2p点名单是否已改变。应用程序可通过requestpeers<WifiP2pManager.Channel,:Xar.sger.Peer1.ist1.istener)来获得当前搜寻到的全部p2p点的名单。通过运用devicelist协作方法nnPeerSAvailable(WifiPZpDevice1.ist)来推断是否存在可见。应用程序通过Conneet(WifiP2pManager.Channel,WifiP2pConfig,7lifiPZpManager.Action1.istener)来初始化一个连接到p2p点的恳求,具体的配置信息可通过WifiP2pConfig来获得。假如想与传统不支持p2p的设通信,应用程序可通过CreateGroUP(WifiP2pManager.Channel,WifiP2pManager.ActiOn1.igtener)创建一个组从而创建一个访问接入点,这个接入点可通过requestGroup:InfO(WifIP2pManager.Channel,WifiP2pManager.GroupInfo1.Istener)来获得到.在胜利的创建形成一个组后(通过CreatQGroUPCfifiP2pManager.Channel,.er.Action1.i.!戈若COnneCt(WifiP2pManager.Channel,WifiP2pConfig,WiiiP2pI4an.ger.Action1.istener).QJ运用requestconnectionTnfo(KifiP2pMa11ager.Channel,WifiP2pManager.ConnectionInfo1.istener)来获得连接信息的具体状况。连接信息ViifiP2pInfo中包含了这个组的owner的地址groupOwr>erAddre和一个标识"i前设备是否是这个缎的OMner的MiU位IsGroupOwner。一个P2P客户端因此可以套接字通信的方式来与组的owner来通神运用discoverPec。S(WifiP2pManager.Channel,WifiP2pManager.Action1.istener),应用可以找到四周的p2p点,但是并没有好的方法找出哪些点可以去建立连接。举例说明,除非是建;广迎接,否则一个嬉戏程序是无法找出四周其他玩同样娴戏的点。顶关联搜寻服务的目的就是基于运行的服务商来解决这个筛选p2p点问题的.运用预关联搜寻服务,应用程序可以先于设备之间的连接建立前赐予建议。当前,基于DNS的搜寻服务(BonjOUr)和Upnp是支持的较面层的协议,可在dns-sd.org找到Bonjour资源,在upnp.org上找到Upnp资源“应用程序可通过调用add1.ocalService(WifiP2pManager.Channe1,WilfiP2pServ:1.CeIn£o,WifiP2pManager.Aution1.istener)注册一个Upnp或者BOnjoUr服务。当添加完一小本地的服务后,rainwork会在一个p2p连接建立之前自动的响应点搜寻服务。调用remove1.oCalSerViCe(WifiP2pManager.Channel,WifiP2pServiceInfo,WifiPZpManager-Action1.istener)可以取消*个本地服务,而Clear1.oCalServiCQs(WifiP2pManaget.Channel,WifiP2pManager.ActiOn1.iStener)可以用来消除全部的本地服务。应用程序可以通过调用QiscoyerSe:二'.'.Channel,WifiP2pManager.Action1.istener来信找那些支持P2P服务的设备,而在初始化搜寻之前,应用程序可运用addServiceRequest(WifiP2pManager.Channel,WifiP2pServiceRequest,WifiP2pManager.ACtion1.iStener)来添加搜寻服务恳求,运用removeServiceRequest(WiflP2pManager.Channel,WifiP2pServiceRequest,WifiP2pManager.ActiOn1.iStener)来消除某个搜寻服务恳求或者运用ClearServiceRequQsts(WifiP2pManager.Channel,7;:1<lpv.>:-.:.U:二:,-;-:r)来清除全部的搜寻服务恳求。而假如没有服务恳求保留,那么之前运行的搜寻服务将停止。应用程序可以通过用于Bonjour的setDnsSdReSPonSe1.iStener5(WifiP2pManager.Channel,7IifiP2pManager.DnssdserviceResponse1.istener,WifiP2pManager.DnsSdTxtRecord1.istener)或者用于Upnp的SetupnpserviceResponse1.istener(WifiP2pManager.Channel,WifiP2州anager.UpnpServiceReSPonSe1.istener)设置监听回调来获得搜寻服务恳求的结果.留意:运用ini-.-ilze:rxt,二:”:PTr,WifiP2pManager.ChanneI1.iStener)须要注册权限ACCESSWFTSTATE和CHANGEW:rTSTATE从而来完成更多的操作.可通过调用COnt-etSystemService(COnteXt.WlFlP2PSERVICE)来获得这个类的实例。