快速业务通道

在Java ME中通过蓝牙发现设备并传送文件 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-14

我们讲到DiscoveryListener接口有两个其他的方法可以用来利用发现的服务。这两个方法是 servicesDiscovered(int transID, ServiceRecord[] servRecord) 和serviceSearchCompleted(int transID, int respCode)。正如名字所显示的那样,第一个方法是每当一个服务被发现时被调用,第二个 方法当服务过程结束时被调用。

每当一个服务被发现的时候,我们需要找到每个设备上的特定的URL服务连接。这个URL连接将使OBEX 连接用于我们的数据传送,而且由蓝牙硬件,设备地址组成。在以下的代码中,这个URL连接取自于 servicesDiscovered方法:

String connURL = servRecord[i].getConnectionURL (ServiceRecord.NOAUTHENTICATE_NOENCRYPT, false);

通过这个URL连接,现在我们可以把传输数据的程序移动到已发现得设备上。

第三步:使用PBEX PUT传送数据

在这个MIDlet中,我们将运行用户输入一些文本作为一个消息,然后用已发现的设备或是服务来传送 它们。为了做这个,我们需要在前一步骤中得到的URL连接(当然,消息数据是作为一个String的)。

// open a client session   ClientSession clientSession =    (ClientSession) Connector.open(connURL);   // connect using no headers    clientSession.connect(null);   if(rHeaders.getResponseCode() != ResponseCodes.OBEX_HTTP_OK) {   // the connection could not be established   handleError(   new Exception("Remote client returned invalid response code: " +   rHeaders.getResponseCode()));   return;   }   // if we are here, then response code was ok   // create a new set of headers    HeaderSet headers = clientSession.createHeaderSet();   headers.setHeader(    HeaderSet.LENGTH,   new Long(noteBox.getString().length()));    headers.setHeader(HeaderSet.NAME, "myNote.txt");   headers.setHeader (HeaderSet.TYPE, "text/plain");   // create an operation using the headers we have just created   Operation op = clientSession.put(headers);   // on this operation, create the output stream   OutputStream out = op.openOutputStream ();   // and send the note   out.write(noteBox.getString().getBytes ());

为了发送该数据,client session被打开,而且建立一个空标题的连接。在这一点上,你的目标设备 要求来自一个新设备的数据接收的确认。如果你以前从来没有配对的设备,也可能要求你提供密钥。

一旦连接建立,解释数据目的地一些标题会被创建,而且一个新的操作通过这些标题也会被创建。这 个操作是通过OutputStream来进行传送数据的。

接收到的消息放在目标设备上的默认蓝牙交换文件夹中。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号