快速业务通道

使用JSR-82 API实现OBEX图像传输 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-16
GUI 组件(也就是非动态创建的组件),Mobility Pack 在创建 GUI 组件及其之间的工作流方面非常高效。以下图 2 描述了用于创建 ImageSender Midlet 的 NetBeans 项目。

使用JSR-82 API实现OBEX图像传输 - 编程入门网

图 2:用来创建 ImageSender Midlet 的 NetBeans 项目

为了使 ImageSender 完成其任务(如从文件系统读取文件,以及向远程蓝牙设备发送数据), ImageSender 所使用的内部类封装了以下三个重要功能领域:

读取文件并遍历文件系统(将由 FileNavigator 处理)

发现远程蓝牙设备(将由 BTUtility 处理)

使用对象推送模式向远程蓝牙设备发送文件(将由 FilePusher 处理)

学习了这些预备知识,下面开始实现!

ImageSender.FileNavigator

以下图 3 是一个程序表,它显示了 ImageSender Midlet 和其内部类(FileNavigator)之间的交互 ,FileNavigator 专门用来读取和遍历移动设备的文件系统。

使用JSR-82 API实现OBEX图像传输 - 编程入门网

图 3:显示 FileNavigator 内部类用法的程序图

首先,ImageSender 获取一个 FileNavigator 实例并调用 getListofFolder() 方法,该方法返回一 个 javax.microedition.lcdui.List。而 FileNavigator 将使用 JSR-75 File Connection API 的 FileSystemRegsitry 类获取文件系统“根”的枚举 ,也就是设备的载入点。如果移动设备包含可移动介 质(如 SD 内存卡),它也将在枚举中显示。对于文件系统的每个根,都对其建立一个 FileConnection 以确定它是文件还是文件夹。 这是必需的,因为您肯定希望以不同的方式处理它们(也就是,如果该项 目是文件夹,您希望遍历该文件夹,但是如果该项目是文件,那么您将希望打开该文件以获得其内容)。 枚举完之后,FileNavigator 内部类将向 ImageSender 返回一个 List,ImageSender 将简单地在该移动 设备上显示 List,如以下图 4 所示。

使用JSR-82 API实现OBEX图像传输 - 编程入门网

图 4:ImageSender 显示目录中的文件和文件夹列

使用JSR-82 API实现OBEX图像传输(3)

时间:2011-07-28 Bruce Hopkins

因为 FileNavigator 内部类实现了 CommandListener 接口,所以它将处理来自该用户接口的所有更 改目录或选择文件的请求。该方法使得父类 ImageSender 不再负责响应用户的输入并了解如何处理该输 入。内部类已经拥有对 JSR-75 类的引用,这些类允许其连接到文件系统,所以非常适合处理用户的请求 并处理文件系统。下面是 FileNavigator 的 commandAction() 方法的一部分;当用户选择该列表中的项 目时将执行这部分代码:

    ...            if(isFolderSelected == true){              // the user selected a folder, so navigate down it              String folderUrl = (String)curr_dir_urls.elementAt (selectedIndex);              getDisplay().setCurrent(fileNavigator.getListofFolder(folderUrl, false));            } else {              getDisplay().setCurrent(get_fileSelectedAlert(), displayable);              // the user has obviously selected a file, so let''s read it in              String file_url = (String)curr_dir_urls.elementAt (selectedIndex);              ...                fileConn = (FileConnection) Connector.open(file_url);                InputStream is = fileConn.openInputStream();                // now let''s read the file in into our byte[]                file = new byte[(int)fileConn.fileSize()];                is.read(file);                is.close();

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号