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

本文的目的是提供关于无线蓝牙技术 Java API(即 JSR-82 API)的实践体验。如果您不熟悉蓝牙语 义,不要担心。我将在蓝牙协议简介及其用例(称为蓝牙模式)中介绍这些内容。因为本应用程序将展示 如何使用蓝牙技术向其他蓝牙设备传输图像,所以还将展示如何使用 JSR-75 的 File Connection API 以程序的方式对移动设备进行访问。在本文结束时,将获得能够向远程蓝牙设备传输图像的指导性示例( 及相关文件)。

蓝牙协议

关于蓝牙的一个鲜为人知的事实是:它即便不是世界上配置最为广泛并且最成功的 SOA(面向服务架 构)系统,那么也是其中之一。蓝牙技术得到广泛的安装采用(部署的设备超过 5 亿台),并且当前的 数据估计每周都有另外五百万台蓝牙设备送出。远在“面向服务架构”成为专门术语之前,蓝牙协议就已 经提供了服务注册、服务发现和服务调用机制。

因此,蓝牙协议结合了面向服务架构并采用 HTTP 和 FTP 之类的其他协议中熟悉使用的客户端/服务 器通信架构:在客户端发出请求之前,服务器耐心地等待。当前市场上的蓝牙设备能够以 3 Mb/s 的速率 进行通信,并且可以支持立体声无线音频。以下图 1 显示了蓝牙协议栈的各个层。

图 1:蓝牙协议栈及其层

因为本文的重点是 OBEX,所以我没有讲述图 1 中所有层的细节,但是我确实希望提供关于主要的支 持 OBEX 层的一些详细信息。如您所见,该栈的主要协议层之一是 L2CAP(逻辑链路控制和适配协议)。 L2CAP 用作其他所有上层之间信息包数据的多路复用器。另一方面,RFCOMM 称为“虚拟串行端口”层。 需要与支持数据流的设备通信时,RFCOMM 用起来不错。OBEX(代表对象交换)是最适合文件传输的协议 层。借助 OBEX,可以创建消息并向包含有效载荷(也就是要发送的文件)的远程蓝牙设备发送消息以及 重要元数据(如文件名称、文件大小和文件类型)。

蓝牙模式

蓝牙模式允许各种性能不同的蓝牙设备进行交互和协作。每个模式都是一个针对具体目的定义功能的 用例。例如,如果希望通过移动设备向使用打印机,则两台设备都必须实现基本打印模式。或者例如,如 果要同步台式机和 PDA 的联系人列表,这两台设备必须都支持同步模式。下面的表 1 列出使用蓝牙栈 OBEX 协议层的模式。

表 1. 当前基于 OBEX 的模式

模式名称 缩写 UUID
对象推送模式 OPP 0x1105
文件传输模式 FTP 0x1106
同步模式 SYP 0x1104
静态图像传输模式 BIP 0x111A
电话簿访问模式 PBAP 0x1130
基本打印模式 BPP 0x1122
时间: 2024-11-27 17:56:46

使用JSR-82 API实现OBEX图像传输的相关文章

JSR 310:一种新的Java日期/时间API

JSR 310 是一个用于执行与时间和日历有关的计算的 API,已经得到 Java SE 7 的推荐.该 API 的 目标是取代现有的两个构成 Java 的当前日期和时间 API 的类:java.util.Date 和 java.util.Calendar,同时仍然提供对这些旧有 API 的向后兼容访问.JSR 当前正在开发,并且该 API 有一个可用的试验性 Javadoc. 对 Java 6 日期/时间 API 的改进 JSR 310 日期/时间 API 试图通过提供更好的性能和易用性改进

J2ME Wireless Toolkit 2.2 新改进

屡获殊荣的 J2ME Wireless Toolkit 已经成为 J2ME 开发应用程序的事实标准工具包.自从 2000 年初次亮相以来,该工具包一直在发展以赶上移动 Java 技术外观上快速改变的步伐.不要被从 2.1 版本以来的小改变所误导.新的工具包在四个重要的领域支持 Java Community Process (JCP) 所指定的新的可选 API:3D 图形.多媒体通信.蓝牙连网(Bluetooth networking)和数据管理.本文将描述这些新的 API 并且向您展示如何在工具

J2ME开发环境搭建 之 Sun WTK

什么是J2ME Wireless Toolkit WTK 的全称是Sun J2ME Wireless Toolkit -- Sun的无线开发工具包,使用其中的工具可以开发在与 Java Technology for the Wireless Industry (JTWI, JSR 185) 规范兼容的设备上运行的 Java 应用程序.该工具箱包含生成工具.实用程序以及设备仿真器.到本文写作时为止可以获取有四个版本,分别是1.0.4, 2.0, 2.1和2.2.每个版本都包括英语,日语,简体中文,

在Java ME中通过蓝牙发现设备并传送文件

在Java ME设备上执行蓝牙应用程序的首要步骤之一就是发现过程(discovery process).简而言之就 是,发现过程就是带有蓝牙的设备互相找到彼此的过程,然后一起携手找出它们各个可以支持的服务.下 一步就是要学习如何在这些两两设备之间传送数据. 在本篇技术小文章中,我将向你展示如何创建一个可以互相查找设备的一个MIDlet,然后让用户发送 一个简单的消息到其中一个被找到的设备中.我已经在Nokia N95的机器上测试并核实了这个MIDlet的工 作了,通过启用蓝牙支持,它可以连接到一

J2ME Web 服务入门

web 简介 WSA 设计用于与 J2ME 配置文件协同工作,J2ME 配置文件要么基于 Connected Device Configuration (CDC),要么基于 Connected Limited Device Configuration (CLDC 1.0 或 CLDC 1.1).远程调用 API 基于 J2SE 的 Java API for XML-Based RPC (JAX-RPC 1.1) 的一个完整子集,它包含了一些远程方法调用(Remote Method Invocat

使用Java验证Lotus Forms XML数字签名

Lotus Forms XML 数字签名简介 本文关注在不依赖 Lotus Forms API 的情况下,使用 JSR 105 API 对签名的 Lotus Forms 文档进行验证(可下载源 代码,见 下载 小节).这种方法简化了使用标准 Java API 调用和来自 其他供应商的 XML 签名实现,将从其他供应商购买的产品与 Lotus Forms 集成 的过程. 对于本文而言,表单是指包含使用 Extensible Forms Description Language (XFDL) 描述的

[J2MEQ&A]WTK初始化WMAClient报错XXX has no IP address的解释

[J2ME]WTK初始化WMAClient报错XXX has no IP address的解释   [现象] 当通过WTK运行一个J2ME程序时,KToolbar显示这样的错误: 错误形态一 WMAClient: localhost has no IP address: java.net.UnknownHostException: xxxx: xxxx Warning: Failed to initialize WMA message routing support ClientConnecto

优秀的程序员是在穿过一条单行道的时候还会往两边看的人

作为一个IT行业的软件程序员,每天驱使我们日复一日的辛勤工作的,是来自我们对编程的兴趣和激情.但是要让编程变得始终有趣,我们必须学会坚持某些成为优秀程序员的基本原则. 我并不是要写出一些咒语,你照着执行就可以成为一个优秀程序员了.我的目的是想记录下我学习到的和用过的一些有用的经验,它们帮助我获得比较好的结果.对于优秀程序员是没有明确定义的,这里我们指的是那些创造出了优秀IT解决方案的以及帮助这个行业增长的那些人. 0. 掌握基础 对于任何行业任何工作来说,融会贯通是获得成功的关键.一个人想要成为

针对Java EE 7三个特性进行详细的剖析

Java EE 7 使得开发人员可以写更少的样板代码,通过丰富的组件来提供一个完整.全面.集成的堆栈来支持和构建最新的 Web 应用程序和框架,同时提供更具扩展性.丰富性和简易的功能.企业将会从便捷式批处理.改进的扩展性等新功能中获益.本文将通过对这个版本中新增组件 WebSocket 1.0.JSON Processing 1.0.JAX-RS 2.0.JSF 2.2 和 JMS 2.0 的介绍及若干示例的展示,来对以上三个特性进行详细的剖析. Java EE 作为一个企业应用的部署平台,具有