与this question相似。我的任务是使用Java开发一个应用程序,只使用蓝牙,从我的WinXP PC向附近的手机发送消息字符串。
我找到了一个可以使用的免费Java蓝牙库(Bluecove),但似乎它可能不支持Windows下的OBEX,因为我读到这是执行此任务所必需的。
有没有人用Java证明这一点? 您使用了什么堆栈和蓝牙库?
答案 0 :(得分:0)
如果您只发送字符串,Sun似乎并不认为OBEX是必要的。来自开发者网站(http://developers.sun.com/mobility/apis/articles/bluetoothintro/index.html):
JABWT还包括Object Exchange API。 OBEX是一个高级别的 用于交换的API和协议 电子商务等对象 传送的卡片和日历项目 在vCard和vCalendar格式中。上 蓝牙,对象交换发生 RFCOMM。
如果您只发送字符串,则可能需要降低一级并查看RFCOMM协议。维基百科有这样的说法:
RFCOMM。有时被称为连续 端口仿真。蓝牙系列 端口配置文件基于此 协议
RFCOMM。提供简单可靠 数据流给用户,类似于 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,看看哪一个听起来最像你想要做的。
答案 1 :(得分:0)
Bluecove网站上的found this,用于演示通过蓝牙向手机发送字符串消息。