使用Java和BlueCove开发蓝牙数据传输客户端的详细指南

由于项目原因。在电脑上开发一个通过蓝牙传输数据的客户端。我使用JAVA和JSME开发。

使用Java和BlueCove开发蓝牙数据传输客户端的详细指南

客户端:搜索蓝牙信号,然后找到对应的蓝牙信号进行连接。

服务器:客户端需要连接的蓝牙信号。

PCserver端还需要一个开源组件BlueCove。该组件实现了JSR-82 Java蓝牙规范,屏蔽了底层操作系统级原生蓝牙协议栈各种功能的封装。

需要这个组件的原因是J2SE没有实现JSR-82标准协议。

我正在使用 bluecove-2.0.3.jar。

您还需要 commons-io jar 包。我用的是2.2的jar包。

Java 蓝牙 API 依赖于 Java 通用连接框架。这一直是 Java 蓝牙 API 应用程序的限制。然而,人们建议将 GCF 添加到 J2SE 中。

Java 蓝牙 API 使得访问许多其他系统成为可能。

Java蓝牙API定义了两个包:一个是javax.bluetooth,它是Java蓝牙API的核心。还有用于对象交换协议的 javax.obex (OBEX)。

任何蓝牙应用程序都具有以下组件:堆栈初始化组件、设备管理组件和设备发现组件。服务发现组件和通信组件。

JSR82 规范引入了两个设备管理类:LocalDevice 和 RemoteDevice。

LocalDevice 同意您获取有关蓝牙设备的静态信息的请求。它依赖于 javax.bluetooth.DeviceClass 类来获取设备类型及其提供的服务类型。

RemoteDevice 可用于获取蓝牙邻居中的设备信息(例如远程蓝牙设备的地址)。

它代表一个远程设备(例如,可达范围内的设备),并提供获取设备相关信息的方法,包括其蓝牙地址和名称。

每个蓝牙设备都有一个唯一的硬件地址。就像计算机的 MAC 地址一样。您可以通过调用LocalDevice对象中的setDiscoverable()方法来设置设备发现的级别,使其他蓝牙设备能够发现当前设备。

设备发现

无线设备需要一种允许它们发现其他设备并访问其功能的机制。核心蓝牙 API 的 DiscoveryAgent 类和 DiscoveryListener 接口提供必要的发现服务。可通过三种方式获取可访问设备的列表。 DiscoveryAgent.startInquiry() 方法将设备设置为查询模式。要充分利用此模式,应用程序必须指定一个事件侦听器来对与查询相关的事件做出反应。当查询完成或取消时,将调用 DiscoveryListener.inquiryCompleted() 方法。

服务发现

服务发现允许您发现附近的服务。无论哪个设备提供服务。 DiscoveryAgent提供的方法可以用于发现蓝牙服务设备上的服务。并初始化服务发现事务。

在发现服务之前,必须首先在蓝牙服务设备上注册或广播该服务。

服务设备负责完成许多任务,包括创建描述所提供的服务的服务记录、接受来自客户端的连接以及向服务设备的服务发现数据库(SDDB)添加新的服务记录。

我使用的软件是我以前编写Android程序时使用的ADT集成开发工具。

32位java开发环境。

PC 使用蓝牙适配器并安装了 BlueSoleil_.6.v6.4.249。

以下是我在PC端开发时遇到的问题

1、由于BlueCove尚未更新,该jar包只能在32位Java环境中使用,在64位Java开发环境中会报错。

1.端口错配[4]和[5]

问题描述:蓝牙虚拟端口与您电脑上的蓝牙端口不匹配。

解决:

蓝牙适配器的“我的设备属性”——串口——只剩下一个串口,活动连接为“否”,连接方向为“传出”。

删除剩余端口号,或者直接通过经典蓝牙界面删除蓝牙。再次搜索连接

2.连接失败

解决:

如果未安装驱动程序,请右键单击设备管理器中的感叹号,然后选择在线安装驱动程序。

你可能想看:
« 上一篇
下一篇 »

相关推荐

java中什么是冒泡,冒泡算法

2026年09月06日

27阅读

java中冒号,java双冒号

2026年09月06日

26阅读

java中的->,java中的是什么意思

2026年09月06日

24阅读

java中的super用法,Java中super的说明

2026年09月06日

28阅读

java中反射的应用,java中反射的应用场景

2026年09月06日

25阅读

java中开关的定义,Java关键字有哪些

2026年09月06日

26阅读