【android开发wiki】进阶篇连接无线设备(一):使用网络服务搜索

【android开发wiki】进阶篇连接无线设备(一):使用网络服务搜索

ID:34656413

大小:242.29 KB

页数:9页

时间:2019-03-08

【android开发wiki】进阶篇连接无线设备(一):使用网络服务搜索_第1页
【android开发wiki】进阶篇连接无线设备(一):使用网络服务搜索_第2页
【android开发wiki】进阶篇连接无线设备(一):使用网络服务搜索_第3页
【android开发wiki】进阶篇连接无线设备(一):使用网络服务搜索_第4页
【android开发wiki】进阶篇连接无线设备(一):使用网络服务搜索_第5页
资源描述:

《【android开发wiki】进阶篇连接无线设备(一):使用网络服务搜索》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、eoe移动开发者社区http://www.eoe.cn/原文地址:http://developer.android.com/training/connect-devices-wirelessly/nsd.html在你的应用程序中添加网络服务发现(NSD)允许你的用户识别在本地网络中的设备以便支持在你的应用程序中服务的请求。这将对于不同的点对点的应用程序很有用,比如文件分享和多人玩的游戏。android平台的NSD的API简化你实现这项功能所需要作出的努力。这节课将会向你展示怎么样创建一个能够广播它的名字和连接信息给本地网络和浏览从其他应用程序做相同

2、的工作的应用程序。最后,这节课将会向你展示怎么样连接在其他设备上的同一个应用程序。在网上注册你的服务这一步是可选的。如果你不关心在本地网络广播你的应用程序的服务,你可以跳到下一步,DiscoverServicesontheNetwork.在本地网络注册你的服务,首先创建一个NsdServiceInfo对象。这个对象提供当在网络中的其他设备它们决定是否连接你的服务需要的信息。1.publicvoidregisterService(intport){2.//CreatetheNsdServiceInfoobject,andpopulateit.3.Ns

3、dServiceInfoserviceInfo=newNsdServiceInfo();4.5.//Thenameissubjecttochangebasedonconflicts6.//withotherservicesadvertisedonthesamenetwork.7.serviceInfo.setServiceName("NsdChat");8.serviceInfo.setServiceType("_http._tcp.");9.serviceInfo.setPort(port);10.....11.}这段代码把服务的名字设置为"Ns

4、dChat"。这个名字对于在网络上使用NSD查找服务的设备。注意这个名字必须在网络上是唯一的,并且android操作系统自动解决冲突。如果在网络中的两个设备都安装NsdChat的应用程序,它们中会有一个自动改变服务的名字改成就像"NsdChat(1)"的名字。第二个参数设置服务的类型,决定应用程序使用哪一个端口和传输层。语法是._。在代码段中,服务在TCP上使用HTTP协议。一个提供打印服务(例如,网络打印机)的应用程序把服务的类型设置为"_ipp._tcp"。eoe移动开发者社区http://w

5、ww.eoe.cn/注意:国际地质分配机构集(IANA)中管理,授权服务发现协议的服务类型的清单,例如NSD和Bonjour。你可以从theIANAlistofservicenamesandportnumbers下载清单。如果你打算使用一种新的服务类型,你应该通过填写IANAPortsandServiceregistrationform储存它.当为您的服务设置端口,避免硬编码它像这个冲突与其他应用程序。例如,假设您的应用程序总是使用端口1337的潜在与其他已安装的使用相同的端口应用程序冲突,。相反,使用设备的下一个可用端口。因为这些信息通过一个服务

6、广播被提供给其他应用程序,就没有必要使您的应用程序使用的端口将被其他应用程序在编译时知道。相反,应用程序可以通过你的服务广播获得此信息,就在连接到您的服务之前。如果你使用套接字,这里有通过初始化套接字仅仅设置为0对任何端口都可用.1.publicvoidinitializeServerSocket(){2.//Initializeaserversocketonthenextavailableport.3.mServerSocket=newServerSocket(0);4.5.//Storethechosenport.6.mLocalPort=mS

7、erverSocket.getLocalPort();7....8.}现在你已经定义了NsdServiceInfo对象。你需要实现RegistrationListener接口。这个接口包含了Android使用的提醒你的应用程序关于资源或者服务注册或者注销服务的失败事件的回调函数。1.publicvoidinitializeRegistrationListener(){2.mRegistrationListener=newNsdManager.RegistrationListener(){3.4.@Override5.publicvoidonServ

8、iceRegistered(NsdServiceInfoNsdServiceInfo){6.//Savetheservic

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。