`

基于JSR82的蓝牙应用开发手记

阅读更多

目目标:基于JSR82的蓝牙应用,实现手机和PC之间通过蓝牙实现数据交互。
 
分析:现在支持JSR82,带蓝牙功能的手机还是比较多的。在PC机上,WidcommBlueSoleil都是很著名的蓝牙软件。通过蓝牙来传输数据,这是没有任何技术阻碍,关键是如何尽快做出来,满足项目要求。
 
首先,项目组选定了选定了windows而不是linux,这就限定了我的选择空间。
Windows xp sp2开始就支持蓝牙适配器,对于开发人员来讲,就需要安装WindowsXP Platform SDK(URL: [url]http://www.microsoft.com/downloads/details.aspx?FamilyID=eba0128f-a770-45f1-86f3-7ab010b398a3&displaylang=en[/url]
),然后透过Visual Studio.net 8.0的开发环境来调用蓝牙API来实现。这都是微软提供的开发套件。但是,项目组考虑到可移植性,决定采用Java语言进行开发。这样,我就考虑采用blue cove实现的JSR82来做。
 
BlueCove是一个开源的项目,是JSR-82的具体实现。透过SVN client[url]http://www.bluecove.org/[/url]上下载bluecove2.0.3。这个版本已经比较稳定而且功能齐全,支持Mac OS X, WIDCOMM, BlueSoleil  Microsoft Bluetooth stackLinux BlueZBlue Cove本身并不实现蓝牙协议栈,它利用了 WIDCOMM, BlueSoleil or Microsoftbluetooth stack。也就是说,你用了蓝牙适配器,安装驱动是你的事情,我的应用软件不会帮你安装驱动的,这很合理。
如果选择Blue Cove,就得采用J2SE平台进行开发。
基于Java SE的开发,需要建立Java的开发环境,这里选用SUN公司提供的最新的J2SE平台,JDK 6.0\jdk1.6.0_06作为complier工具。根据Blue Cove小组建议,采用maven2作为Javaproject build工具,IDE的环境用eclipse 3.4
Eclipse将集成JDKCVSmaven2进来,保证使用方便,简要介绍如下:
1、安装JDK后,在系统环境变量中设置好JAVA_HOMECLASSPATHeclipsemaven2就可以找到JDK
2Help->software update,从[url]http://m2eclipse.sonatype.org/update/[/url],引入maven2插件。对于maven2,要设置好M2_HOME或者是MAVEN_HOME的值。
eclipsemaven2集成的过程中,一直弹出这样的告警:
Eclipse is running in a JRE, but a JDK is required
Some Maven plugins may not work when importing projects or updating source folders.
不少人讲要修改eclipse.ini,增加一行:
-vm C:\Program Files\Java\jdk1.6.0_06\bin\javaw
我加了可总还是出现,呵呵,最后是这样,把vm后面的空格换成回车换行就可以了。注意,即使删除掉空格也是不行的,必须要换行。
作为应用程序,必须要有用户界面,不然测试工作都无法进行。哪个是最好的Java GUI开发工具呢?经过google了一番,确认采用eclipse+Visual Editor的组合,进行开发,当然,它是基于AWTSWING组件技术的,只不过再增加了一层包装,达到所见即所得,跟VC做界面一样。Eclipse VE到这里去下载最新版本:[url]http://download.eclipse.org/tools/ve/downloads/[/url],安装是很简单的,绿色软件,拷过去就行了。重新打开eclipse,重新配置一下工具条。然而尝试着新建一个java class,如果允许你new一个visual class,那就说明插件生效了。
环境搞好了,回过头来看一下需求。项目对蓝牙的需求实际上就是两条:
第一、    任何一方蓝牙都可以主动搜索,发起配对。这个配对过程最好是可以不要,如果一定要配对,希望是可以自动完成。
第二、    基于蓝牙协议栈,为上层提供一个随需随用的数据通道。
仔细研究了一把蓝牙协议栈,发现SPP 定义了如何设置虚拟串行端口及如何连接两个蓝牙设备,这个东西就是在蓝牙PS的基础上实现了一个串口仿真协议。查看安装好widcommbluesoleil的计算机,可以发现增加了很多虚拟COM口,如下所示:
 
提一下,Blue cove是没有实现SPP协议的,幸好我们也不用。
那这样的话,我们就可以在COM口的基础上,利用Java communications API,实现一个类似于标准的RS232串行通讯协议,提供给上层用。到这里,工作就比较清晰了:
1、基于blue Cove,实现蓝牙的搜索,和配对过程。
2、基于java comm. API,实现RS232通讯,并提供接口给上层使用。即使只是搜索到蓝牙设备,通过RS232也可以直接发数据过去(PUSH操作),这一点需要验证,根据协议研究是可以实现的。
当然,还要对上述功能进行测试。这就要用VE来编写界面了。这个测试软件需要实现如下功能:
本地蓝牙配置;搜索远端蓝牙并列表;主动配对;接受配对请求;
配置RS232口参数;发送数据;接收数据并打印出来,保存下来。

 

 

 转载: http://freeman1974.blog.51cto.com/396609/85691

分享到:
评论

相关推荐

    蓝牙技术Java API与规范(JSR82)

    JSR82规范的目标是为Java开发者提供一个统一的、跨平台的API,以便于开发蓝牙设备间的通信应用。这个规范包含了蓝牙协议栈中的主要层次,如射频(RF)层、逻辑链路控制与适应协议(L2CAP)、服务发现协议(SDP)等,使得...

    基于J2ME的手机蓝牙游戏开发框架包

    在IT行业中,尤其是在移动应用开发领域,J2ME(Java Micro Edition)曾是开发手机应用程序的一个重要平台,特别是在早期智能手机时代。本主题聚焦于“基于J2ME的手机蓝牙游戏开发框架包”,这是一个专为创建蓝牙连接...

    Java蓝牙无线技术应用程序开发

    2002年,Java开发社区发布了基于Java平台的蓝牙API规范JSR82。这一规范明确了JAVA嵌入式设备的JAVA应用编程接口,为开发人员提供了一套标准API,使JAVA设备能够无缝地集成到蓝牙环境中。 ##### 2. API包介绍 Java...

    基于JSR168的portlet精彩范例

    基于JSR168的portlet精彩范例

    蓝牙技术Java API与规范

    蓝牙技术Java API与规范,是基于Java平台进行蓝牙应用开发的重要参考。JSR82,全称为Java Specification Request 82,是Java Community Process (JCP)为在Java环境中实现蓝牙无线技术制定的一套标准。它允许开发者...

    嵌入式Java蓝牙构件模型的研究与应用.pdf

    嵌入式Java蓝牙构件模型的研究与应用主要集中在利用基于构件的开发(CBD)技术来提升嵌入式系统,特别是涉及到蓝牙通信功能的设备的开发效率和质量。在本文中,作者首先介绍了构件的基本概念,定义了一个构件是独立...

    java蓝牙开发demo

    首先,Java蓝牙开发主要依赖于Java Bluetooth API(JSR-82),这是一个Java ME规范,允许开发者在支持蓝牙的设备上创建无线应用程序。不过,需要注意的是,JSR-82并不包含在标准的Java SE或Java EE中,因此,对于...

    jsr80 jar(开发应用)

    ······jsr80 实现USB 监听功能

    开发j2me必备api 【jsr系列api】

    例如,如果需要开发一个包含蓝牙功能的应用,JSR 82是必不可少的;如果要创建一个地理位置相关的应用,那么JSR 179将是关键。通过了解和熟练掌握这些JSR API,开发者可以充分利用J2ME的潜力,创造出适应各种设备特性...

    jsr168和jsr268中文文档及开发手册

    JSR168和JSR268的中文文档和开发手册对于理解和开发portlet应用至关重要。它们详尽地介绍了API的使用方法、示例代码和最佳实践,可以帮助开发者快速掌握portlet开发,实现功能丰富的门户应用。通过深入学习这些文档...

    在J2ME中开发蓝牙无线软件

    特别是针对蓝牙无线技术的支持,J2ME提供了一个强大的框架——Java APIs for Bluetooth wireless technology (JABWT),这使得开发者能够轻松地在各种移动设备上开发蓝牙应用。 #### 二、Java蓝牙API概述 Java蓝牙...

    用WebLogic Portal 8.1 开发 JSR 168 Portlets

    【WebLogic Portal 8.1 开发 JSR 168 Portlets】是关于使用BEA WebLogic Portal 8.1版本开发遵循JSR 168标准的portlet的实践指南。JSR 168(Java Portlet)规范旨在促进portlet与门户之间的可移植性,确保portlet...

    自己写的手机蓝牙控制代码

    总结起来,这个项目提供了一套基于J2ME和JSR82的手机蓝牙控制解决方案,用户可以通过AT指令实现对蓝牙设备的操控。对于想要学习蓝牙编程或者需要在老旧Java手机上实现蓝牙功能的开发者来说,这个资源具有很高的参考...

    J2ME蓝牙实战入门.doc

    《J2ME蓝牙实战入门》文档主要介绍了如何利用Java Micro Edition (J2ME)平台中的JSR82规范来开发蓝牙应用。JSR82,全称为Java APIs for Bluetooth Wireless Technology,提供了一套API,使得开发者能够在支持蓝牙的...

    基于蓝牙技术的Linux系统和手机终端通讯实现.pdf

    通过JSR 82,开发者可以在Java应用程序中实现与蓝牙设备的交互。作者分析了JSR 82的实现机制,并给出了一种在手机终端上进行无线通信的具体方法。 将Linux系统的Bluez协议栈与手机端的JSR 82相结合,文章实现了手机...

    基于 j2me 的蓝牙五子棋

    在本文中,我们将深入探讨如何利用J2ME技术开发一个基于手机蓝牙功能的五子棋游戏。 五子棋,又称连珠,是一种简单但策略丰富的两人对弈棋类游戏。在手机上实现蓝牙五子棋,意味着玩家可以通过手机的蓝牙功能与其他...

    支持X64位J2SE的蓝牙开发包bluecove-2.1.1.jar

    它支持多种平台,包括Windows、Linux、Mac OS X等,为跨平台的蓝牙应用开发提供了便利。BlueCove实现了JSR-82(Java API for Bluetooth Wireless Technology),这是Java ME(Micro Edition)中定义的一套标准接口,...

    开发基于JBoss的J2EE应用

    尽管JBoss作为开源项目存在文档相对较少的挑战,但其强大的社区支持和丰富的资源库使得开发者仍能高效地进行基于JBoss的J2EE应用开发。本文介绍的配置与实践技巧,旨在帮助开发者更好地理解和掌握在JBoss 3.2.1环境...

Global site tag (gtag.js) - Google Analytics