使用JSR-82 API实现OBEX图像传输 - 编程入门网
...
可以看到,如果用户选择了一个文件夹,FileNavigator 将遍历该文件夹,返回另一个列表并显示它 。然后,如果该用户选择一个文件,FileNavigator 内部类将打开到该文件的 FileConnection 并以名为 “file”的字节数组读取其内容。 ImageSender.BTUtility ImageSender Midlet 使用的第二个辅助类是 BTUtility。您可能会猜到,BTUtility 内部类封装了其 余代码所调用的所有 JSR-82 蓝牙 API 方法。BTUtility 主要向 ImageSender Midlet 提供两个领域的 功能:发现附近的远程蓝牙设备,并对这些设备执行服务搜索。图 5 为显示 ImageSender 如何使用 BTUtility 的程序图。 图 5:描述 ImageSender 和 BTUtility 之间交互的程序图 如上所示,ImageSender 获得了 BTUtility 的新实例之后,该实例包含对 LocalDevice 和 DiscoveryAgent 类的引用。为了发现附近的蓝牙设备,必须调用 DiscoveryAgent.startInquiry()。该 实现将异步调用在该区域发现的每台蓝牙设备的 deviceDiscovered() 方法。最后,如果没有发现更多蓝 牙设备,JVM 将调用 inquiryCompleted() 方法。图 6 显示了 BTUtility 类发现的启用蓝牙技术的设备 列表。 图 6:BTUtility 类所发现的蓝牙设备 使用JSR-82 API实现OBEX图像传输(4)时间:2011-07-28 Bruce HopkinsBTUtility 执行的另一项工作是搜索远程蓝牙设备上的服务。如以下图 7 所示,搜索服务过程比发现 设备需要占用更多 CPU 时间。这就是为什么设备发现过程可以从 BTUtility 的构造函数发起,但是服务 搜索部分必须以 Thread 启动。 图 7:使用 BTUtility 搜索远程蓝牙设备上的服务。 幸运的是,BTUtility 扩展了 Thread 类,因此可防止该用户接口挂起。当 BTUtility 调用 DiscoveryAgent.searchServices() 时,如果发现匹配的服务,JVM 将异步调用其 serviceDiscovered() 方法。服务搜索过程完成时,JVM 将调用其 serviceSearchCompleted() 方法。作为备用方式,可以调用 DiscoveryAgent.selectService(),但是根据 JSR-82 规范,它只能返回附近一个服务提供商的 connectionURL。回顾上面的图 6 可知,在大多数环境中,您不知道文件将发送给谁。下面是完整的 BTUtility 清单:
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |