【问题标题】:How to send a text message to mobile phone via bluetooth in Java?Java如何通过蓝牙向手机发送短信?
【发布时间】:2009-12-17 15:34:08
【问题描述】:

类似于this question。我的任务是使用 Java 开发一个应用程序,以便仅使用蓝牙将消息字符串从我的 WinXP PC 发送到附近的手机。

我找到了一个免费的 Java 蓝牙库 (Bluecove) 可以使用,但它似乎不支持 Windows 下的 OBEX,据我所知,这是执行此任务所必需的。

有人用 Java 证明了这一点吗? 你用了什么栈和蓝牙库?

【问题讨论】:

  • 我使用 Bluecove + Windows Vista + OBEX 通过蓝牙发送文件,效果很好。所以完全支持 OBEX。在 migre.me/ewfk 中查看我的问题

标签: java bluetooth


【解决方案1】:

如果您只发送字符串,Sun 似乎并不认为 OBEX 是必要的。来自开发者网站 (http://developers.sun.com/mobility/apis/articles/bluetoothintro/index.html):

JABWT 还包括 Object 交换 API。 OBEX 是高级别的 用于交换的 API 和协议 电子商务等对象 传送的卡片和日历项目 在 vCard 和 vCalendar 格式中。在 蓝牙,对象交换发生在 RFCOMM。

如果您只发送字符串,您可能想深入了解 RFCOMM 协议。维基百科对此有这样的说法:

RF 通信。有时称为串行 端口仿真。蓝牙串口 端口配置文件基于此 协议。

RF 通信。提供了一个简单可靠的 给用户的数据流,类似于 TCP。很多人直接使用 电话相关的配置文件作为 AT命令的载体,以及 作为 OBEX 的传输层 蓝牙。

所以听起来通过 RFCOMM 发送数据很像使用 TCP 流。除非您需要支持比字符串更复杂的结构,否则我认为它应该适合您的需求。

进一步阅读告诉我,低于 RFCOMM 的级别是 L2CAP:

通过 L2CAP 和 RFCOMM 支持 L2CAPConnection 和 StreamConnection 类型分别。尽管 L2CAPConnection 被引入 JSR 82,定义了 StreamConnection 作为原作的一部分 javax.microedition.io GCF 是 开发依赖CLDC。注意 JABWT L2CAPConnection 仅支持 面向连接的 L2CAP 连接。

StreamConnection 听起来也很有希望发送字符串。我会检查两者的 API,看看哪个听起来最符合您的要求。

【讨论】:

  • 我知道较低的 RFCOMM 和 L2CAP 层。但这些对于我的目的来说还不够,因为我需要手机识别我的消息并将其显示给用户,而不需要我制作另一个应用程序作为客户端运行。我的理解是,RFCOMM 只是一个传输,而不是一个完整的 Push-Pull(客户端/服务器)自动设置。就像 OBEX 应该的那样。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-04-27
  • 1970-01-01
  • 1970-01-01
  • 2012-03-12
  • 1970-01-01
  • 1970-01-01
  • 2011-03-09
相关资源
最近更新 更多