PC端 java 开发蓝牙所遇到的问题
由于项目的原因。要在电脑上开发一个通过蓝牙传送数据的client。我採用的是JAVA,JSME开发。
client:去搜素蓝牙信号,然后找到对应的蓝牙信号进行连接。
服务端:client须要进行连接的蓝牙信号。
在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定义了两个包:一个是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提供的方法能够用来发现蓝牙服务设备上的服务。并初始化服务发现事务。
在服务能够被发现曾经,必须首先在蓝牙服务设备上注冊或广播该服务。
服务设备负责完毕非常多任务,包含创建描写叙述所提供的服务的服务记录,接受来自client的连接,向服务设备的服务发现数据库(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]
说明:蓝牙的虚拟port和你PC上的蓝牙port不匹配
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYW5kcm9pZF9sb3ZlcjIwMTQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" style="border:none; vertical-align:middle; margin:auto; display:block; max-width:260px">
解决:
在蓝牙适配器的“我的设备属性”中--串口--仅仅留一个串口且自己主动连接为否,连接方向为连出
删除其余的port号,或者直接通过经典蓝牙界面将蓝牙删除。又一次搜索连接
2.connect failed
解决:
驱动没安装好,在设备管理器右键感叹号选择联机安装驱动就可以。
PC端 java 开发蓝牙所遇到的问题的更多相关文章
- Ionic进行PC端Web开发时通过脚本压缩提高第一次加载效率
1. 问题 1.1. 问题上下文描述: 基于Ionic进行PC端的Web应用开发: 使用Tomcat作为最终服务发布容器. 1.2. 问题描述: 编译后main.js的大小为4-6MByte.(集成第 ...
- 记录一下,PC端vue开发常用框架,已经用过elementUI和iview 接下来尝试另一个Muse-UI 喜欢它的点击效果
官网地址: https://muse-ui.org/#/zh-CN/installation
- 移动端web开发总结
前一个星期实战完一个PC端的基于HTML+CSS的项目,这几天则接触了移动端的开发,同样也是在HTML+CSS的基础上完成.虽然第一次接触移动端的开发,但在开发过程中,我也是按照PC端的开发步骤来进行 ...
- Java SpringMVC实现PC端网页微信扫码支付完整版
一:前期微信支付扫盲知识 前提条件是已经有申请了微信支付功能的公众号,然后我们需要得到公众号APPID和微信商户号,这个分别在微信公众号和微信支付商家平台上面可以发现.其实在你申请成功支付功能之后,微 ...
- 使用java做一个能赚钱的微信群聊机器人(2020年基于PC端协议最新可用版)
前言 微信群机器人,主要用来管理群聊,提供类似天气查询.点歌.机器人聊天等用途. 由于微信将web端的协议封杀后,很多基于http协议的群聊机器人都失效了,所以这里使用基于PC端协议的插件来实现. 声 ...
- pygame开发PC端微信打飞机游戏
pygame开发PC端微信打飞机游戏 一.项目简介 1. 介绍 本项目类似曾经火爆的微信打飞机游戏.游戏将使用Python语言开发,主要用到pygame的API.游戏最终将会以python源文件gam ...
- 钉钉如何进行PC端开发
前段时间,用钉钉进行了服务器端的开发,对照着官方文档,感觉还是比较顺利的.后续想有时间研究一下PC端客户端的开发,看着官方文档,说的确实是比较简练,但也确实没看太明白,废了半天劲也没成功.后来经过无数 ...
- php微信支付(仅pc端扫码支付模式二)详细步骤.----仅适合第一次做微信开发的程序员
本人最近做了微信支付开发,是第一次接触.其中走了很多弯路,遇到的问题也很多.为了让和我一样的新人不再遇到类似的问题,我把我的开发步骤和问题写出来,以供参考. 开发时间是2016/8/10,所以微信支付 ...
- windows8安装xna4.0不能开发Xbox和PC端游戏的解决办法
vs2012安装wp8后,只能开发手机端的xna游戏程序,没有xbox和pc端的,看来官方是不打算更新了,不过我们还是有办法的. 前提条件下,您得安装了vs2010和xna4.0 game studi ...
随机推荐
- Android新手入门2016(8)--ListView之ArrayAdapter
本文来自肥宝传说之路,引用必须注明出处! ListView是Android中经常使用的控件. 什么是列表视图,让我们先看看图: watermark/2/text/aHR0cDovL2Jsb2cuY3N ...
- EntityFramework 找不到方法:“Void System.Data.Entity.DbModelBuilder.RegisterEntityType
问题原因,EF当前版本没有该方法,将EF版本升级即可. 1.packages.config <package id="EntityFramework" version=&qu ...
- Linux以下基于TCP多线程聊天室(client)
不怎么会弄这个博客的排版,就直接将代码附上: 主要是使用多线程去等待接受数据和发送数据.以下是client的代码: tcpsed.h文件 1 2 3 4 5 6 7 8 9 10 11 12 13 1 ...
- ROS-SLAM-gmapping
前言:gmapping是最常用和成熟的slam导航算法,gmapping功能包集成了Rao-Blackwellized粒子滤波算法,为开发者隐去了复杂的内部实现. 前提:已下载并编译了相关功能包集,如 ...
- 不用copy代码--eclipse使用git提交项目-转
原文地址:http://blog.csdn.net/u014079773/article/details/51595127 准备工作: 目的:eclipse使用git提交本地项目,提交至远程githu ...
- 远程桌面连接Windows Azure中的Ubuntu虚拟机
默认情况下,通过Windows Azure创建的ubuntu虚拟机是不能直接连接远程桌面的,只能通过SSH终端连接. 在Windows Azure Portal中创建Ubuntu虚拟机,创建完成后添加 ...
- Java基础——选择排序、冒泡排序
1.选择排序 原理是直接从待排序数组里选择一个最小(或最大)的数字,每次都拿一个最小数字出来, 顺序放入新数组,直到全部拿完 代码演示: public class Test3 { public sta ...
- WebApi在MVC 4中一个Controll多个post方法报错处理
http://blog.csdn.net/lqh4188/article/details/53542400(原创)
- art-template模板渲染及其过滤器
原生语法 使用原生语法,需要导入template-native.js文件.在HTML中定义模板,注意模板的位置,不要放到被渲染区域,防止模板丢失. <script id="tpl&qu ...
- 【AnjularJS系列4 】 — 单个页面加载多个ng-App
第四篇,插播, 单个页面加载多个ng-App 在写范例的时候发现的问题 一个页面有多个ng-app,angular只会处理第一个ng-app 需要加载两个ng-app,需要进行手动加载: angula ...