PC端 java 开发蓝牙所遇到的问题

因为项目的原因,要在电脑上开发一个通过蓝牙传送数据的客户端,我采用的是JAVA,JSME开发。

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

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

在PC服务器端还需要一个开源组件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定义了两个包:一个是Java蓝牙API的核心javax.bluetooth,另一个是用于对象交换协议的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.Port mismarch [4]and [5]

说明:蓝牙的虚拟端口和你PC上的蓝牙端口不匹配

解决:

在蓝牙适配器的“我的设备属性”中--串口--只留一个串口且自动连接为否,连接方向为连出

删除其余的端口号,或者直接通过经典蓝牙界面将蓝牙删除,重新搜索连接

2.connect failed

解决:

驱动没安装好,在设备管理器右键感叹号选择联机安装驱动即可。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-05 10:41:53

PC端 java 开发蓝牙所遇到的问题的相关文章

移动端页面开发及传统PC端网页开发的异同

   2017年12月份在公司做过一次技术分享,转眼间过去六个月了.... 今天在感叹完时间的飞逝之后,拿过来在这里分享一下吧,话题是:移动端页面开发及传统PC端网页开发的异同,这个ppt是搜集网上众路资源(包括视频课程)加上自己的理解总结的.如若有误,欢迎指正哦- 原文地址:https://www.cnblogs.com/catherLee/p/9118406.html

PC端页面开发基础-问题总结(一)

本人在做前端开发相关工作时,遇到过也解决过很多技术性问题.今天起,就从PC端页面开发开始,理一理新手们可能会遇到的那些坑. 本文非教学文章,仅供有前端开发基础的同学同僚们一起讨论与总结,本人将从零开始持续更新,欢迎大家的批评指正. 高度塌陷问题: 父元素的高度会被子元素撑开,当子元素都设置了浮动时,由于子元素半脱离文档流,父元素失去子元素的高度,便会产生高度塌陷 hack1:父元素overflow:hidden; hack2:子元素下方加一个空div,并设置height:0;clear:both

关于移动端前端开发和PC端前端开发的一点总结

首先就是操作兼容性和个移动版浏览器的兼容性:传统设备上用户利用鼠标(包括触摸版)和键盘来操作网页,放大图片.拖拽元素.进行页面滚动等等.一些常见的鼠标和键盘事件诸如mouseover.mouseout.mousemove.click.foucs.blur等为我们提供了很好的页面交互操作,具体可以参考W3school. 然而,开发支持触摸屏的网页与传统意义上的网页有很大的不同.就拿鼠标hover事件来说,例如页面上有一个表格,当鼠标指向表格的 title时你希望在附近的某个地方显示一个浮动的too

PC端 Spark 二次开发 自动接收好友请求并同意

本次Spark二次开发是为了客服模块的开发, 能让用户一旦点击该客服则直接自动添加好友,而客服放则需自动添加好友,不同弹出对话框进行同意,这方便的广大客服. 现在废话不多说,直接上代码. package org.jivesoftware.spark.ui; import java.util.ArrayList; import org.jivesoftware.spark.util.log.Log; import org.jivesoftware.spark.util.ModelUtil; imp

使用java做一个能赚钱的微信群聊机器人(2020年基于PC端协议最新可用版)

前言 微信群机器人,主要用来管理群聊,提供类似天气查询.点歌.机器人聊天等用途. 由于微信将web端的协议封杀后,很多基于http协议的群聊机器人都失效了,所以这里使用基于PC端协议的插件来实现. 声明以下过程只用于交流学习,并不用于任何商业用途,这里记录一下整体的开发流程. 效果展示 接入过程 准备材料 下文中的服务器可以只需要一台,或者使用你本地电脑,我介绍一下我的环境. 可爱猫微信机器人插件V4.4.0. 一台windows服务器. 一台linux服务器. nginx安装(在window服

Java判断PC端还是移动端

package com.*.*.*; import java.io.IOException;import java.util.regex.Matcher;import java.util.regex.Pattern;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse; /** * 检测是否为移动端设备访问 */public class IsModel { // \b

pygame开发PC端微信打飞机游戏

pygame开发PC端微信打飞机游戏 一.项目简介 1. 介绍 本项目类似曾经火爆的微信打飞机游戏.游戏将使用Python语言开发,主要用到pygame的API.游戏最终将会以python源文件game.py形式完成,只需要运行python game.py就可以进入游戏. 游戏最终效果截图如下: 2. 知识点 本实验中将介绍在Linux桌面环境下使用Python及pygame快速开发小游戏的方式.可以通过这个游戏入门pygame游戏开发. 3. 参考文档 代码参考 Kill-Console写的P

php微信支付(仅pc端扫码支付模式二)详细步骤.----仅适合第一次做微信开发的程序员

本人最近做了微信支付开发,是第一次接触.其中走了很多弯路,遇到的问题也很多.为了让和我一样的新人不再遇到类似的问题,我把我的开发步骤和问题写出来,以供参考. 开发时间是2016/8/10,所以微信支付的版本也是对应此时的版本. 一.前期准备: 首先你们公司开通微信支付功能后,会收到一份邮件,里面有账户相关信息,一般有:微信支付商户号,商户平台登录帐号,商户平台登录密码,申请对应的公众号,公众号APPID. 1.下载demo:用上面信息登陆“微信商户平台”,>>>(右上角开发文档)>

在前端眼中pc端和移动的开发区别

按照昨天所说,本包子今天将总结在前端开发中,pc端和移动端的区别,整理完这些区别,本包子将开始整理pc端的布局,会写实际的代码了,还是那句话,希望文章中有什么不足的地方,大家能多多指正,大家一起进步,成为一个优秀的前端 ~~~ > o < ~~~ PC端和移动端布局的区别 1.pc端没有触摸的各种事件,移动端有:移动端没有鼠标移入移出事件,但是pc端有 2.Pc端最常用的布局是固定宽度为980px(也有960px,1000px,1200px):而在移动端,因为有很多网页是可以横屏看也可以竖屏看