如何使用androidandroid 蓝牙串口助手手处理返回值

  本人最近在研究嵌入式的串口通信,任务是要写一个手机端的遥控器用来遥控双轮平衡小车。界面只用了一个小时就写好了,重要的问题是如何与板子所带的SPP-CA蓝牙模块进行通信。
  SPP-CA模块自带代码,在这里我使用的全部都是SPP-CA的默认模式。其中波特率是9600。读者若要修改其匹配密码,波特率等请使用串口调试工具对SPP-CA使用AT命令进行修改。详情参考其技术手册。
  首先介绍Android端,官方的SDK中给了一个BluetoothChat的版本,这个版本稍加修改就可以进行串口通信。由于源代码网上随处可查,这里不加复制。修改方法如下:
  首先修改UUID,在Android系统中,与手机通信的UUID和与蓝牙串口通信的UUID是不同的。手机通信可以使用生成的UUID进行通信,但与蓝牙串口不可,需使用下面的UUID。(位置:BluetoothChatService.java)
1 private static final UUID MY_UUID = UUID.fromString("0-805F9B34FB");
  在这里,如果其他的resource文件全部添加完毕并正确后之后,是可以正常运行不会产生致命错误的。但是要注意一个地方,在BluetoothChat的文件中,它所使用的connect和discovery的按钮是在菜单中实现的。现在Android系统中普遍在取代菜单键这个功能,所以可能会出现部分小白发现没有这两个按钮的情况,不知道如何跳转到BluetoothConnect.java这个界面。解决方法:可以设置一个按钮,按钮按下,跳出菜单。跳出菜单代码如下:
menuButton.setOnClickListener(new OnClickListener() {
@Overridepublic
void onClick(View v) {
openOptionsMenu();
  最后介绍一个重要问题。在手机端我没有进行测试,不过网上绝大部分我能找到的用来进行手机蓝牙通信的博客都没有标明这个错误,应该是手机之间不会出现这个错误。但是,同样的代码用于蓝牙串口通信就会有乱码!!就会有乱码!!就会有乱码!!
& & 这个乱码有时是出现在末尾,或者是一串字符传过来,就只显示了最后一个字符等等奇奇怪怪的神奇现象。这个现象在我仔细研究了他的BluetoothChatService中的run()方法并结合网上的博客之后发现了问题。
& & 这个问题是由InputStream这个类导致的。它的读取方法是,每次循环都将InputStream中的所有字符读出来。但是在蓝牙串口通信时,它有可能导致一句话没有传完,就已经被读取出来。所以会出现衔接和乱码等问题。
& & 以下是解决办法:通过available方法来得知InputStream中的字符串个数,由于我的需求每次传一个字符就可以,所以我这里buffer是char[1],在接收完成后,把available减去相应的字符串个数即可。
1 public void run() {
System.err.println("++++++++++run Thread+++++++++++++++++++++++");
int // bytes returned from read()
int availableBytes = 0;
// Keep listening to the InputStream until an exception occurs
while (true) {
availableBytes += mmInStream.available();
if(availableBytes & 0){
byte[] buffer = new byte[1];
// buffer store for the stream
// Read from the InputStream
bytes = mmInStream.read(buffer);
availableBytes--;
Log.d("mmInStream.read(buffer);", new String(buffer));
if( bytes & 0 ){
// Send the obtained bytes to the UI activity
mHandler.obtainMessage(BluetoothChat.MESSAGE_READ, bytes, -1, buffer).sendToTarget();
} catch (IOException e) {
Log.d("Error reading", e.getMessage());
e.printStackTrace();
  以上就是完整的BluetoothChat修改方法。已经通过串口调试工具验证,发送接受都无问题。
  本人第一次更新博客,如有不足敬请指出。
阅读(...) 评论() &蓝牙串口助手下载|蓝牙串口助手手机版_最新蓝牙串口助手安卓版下载
当前位置: &
软件截图蓝牙串口助手下载信息蓝牙串口助手简介
蓝牙串口助手:是用于监视Android和蓝牙串行测试蓝牙之间的通信模块。 主要包含2中方式:一种是监听模式另外一种是对话模式。如果蓝牙设备是监听模式定时对外发送数据,那么我们就可以使用监听模式与设备的蓝牙名称进行配对连接获取数据;如果蓝牙设备是对话模式那么就需要我们软件数据十六进制的命令码控制设备对外发送数据。此软件能帮助开发人员拿到设备返回的数据值(十六…...
展开蓝牙串口助手更新日志
蓝牙串口助手短评下载蓝牙串口助手的人还喜欢
你可能是要下载
蓝牙串口助手相关资讯
PP苹果助手:love25ppcomandroid-BluetoothSPP 蓝牙串口程序,实现 模块与手机连接 Com Port 编程 242万源代码下载-
&文件名称: android-BluetoothSPP& & [
& & & & &&]
&&所属分类:
&&开发工具: Java
&&文件大小: 193 KB
&&上传时间:
&&下载次数: 24
&&提 供 者:
&详细说明:蓝牙串口程序,实现蓝牙模块与手机连接-android bluetooth uart
文件列表(点击判断是否您需要的文件,如果是垃圾请在下面评价投诉):
&&BluetoothSPP\.classpath&&............\.project&&............\.settings\org.eclipse.core.resources.prefs&&............\.........\org.eclipse.jdt.core.prefs&&............\AndroidManifest.xml&&............\bin\AndroidManifest.xml&&............\...\classes\mobi\dzs\android\BluetoothSPP\actDiscovery$1.class&&............\...\.......\....\...\.......\............\actDiscovery$2.class&&............\...\.......\....\...\.......\............\actDiscovery$3.class&&............\...\.......\....\...\.......\............\actDiscovery$4.class&&............\...\.......\....\...\.......\............\actDiscovery$5.class&&............\...\.......\....\...\.......\............\actDiscovery.class&&............\...\.......\....\...\.......\............\actKeyBoard$1.class&&............\...\.......\....\...\.......\............\actKeyBoard.class&&............\...\.......\....\...\.......\............\actMain$1.class&&............\...\.......\....\...\.......\............\actMain$2.class&&............\...\.......\....\...\.......\............\actMain$3.class&&............\...\.......\....\...\.......\............\actMain$4.class&&............\...\.......\....\...\.......\............\actMain$5.class&&............\...\.......\....\...\.......\............\actMain$SPPClient.class&&............\...\.......\....\...\.......\............\actMain.class&&............\...\.......\....\...\.......\............\BaseActivity.class&&............\...\.......\....\...\.......\............\BluetoothCtrl.class&&............\...\.......\....\...\.......\............\BuildConfig.class&&............\...\.......\....\...\.......\............\R$attr.class&&............\...\.......\....\...\.......\............\R$drawable.class&&............\...\.......\....\...\.......\............\R$id.class&&............\...\.......\....\...\.......\............\R$layout.class&&............\...\.......\....\...\.......\............\R$string.class&&............\...\.......\....\...\.......\............\R.class&&............\...\.......\....\...\.......\............\SamplesUtils$1$1.class&&............\...\.......\....\...\.......\............\SamplesUtils$1.class&&............\...\.......\....\...\.......\............\SamplesUtils.class&&............\...\.......\....\...\.......\util\sysinfo.class&&............\...\.......\....\...\util\CHexConver.class&&............\...\classes.dex&&............\...\dexedLibs\annotations-377bcb1af3e0b45bd3f7dae280e9a838.jar&&............\...\.........\annotations-c2f0b763e4aaaed17b09a6e.jar&&............\...\ElectroDroid.apk&&............\...\Elettronica.apk&&............\...\jarlist.cache&&............\...\res\drawable-hdpi\icon.png&&............\...\...\.........ldpi\icon.png&&............\...\...\.........mdpi\icon.png&&............\...\resources.ap_&&............\gen\mobi\dzs\android\BluetoothSPP\BuildConfig.java&&............\...\....\...\.......\............\R.java&&............\NOTICE&&............\project.properties&&............\res\drawable\hr_back_white.xml&&............\...\........-hdpi\icon.png&&............\...\.........ldpi\icon.png&&............\...\.........mdpi\icon.png&&............\...\layout\dialog_io_mode.xml&&............\...\......\dialog_set_keyboard.xml&&............\...\......\discovery.xml&&............\...\......\keyboard_mode.xml&&............\...\......\main.xml&&............\...\values\strings.xml&&............\src\mobi\dzs\android\BluetoothSPP\actDiscovery.java&&............\...\....\...\.......\............\actKeyBoard.java&&............\...\....\...\.......\............\actMain.java&&............\...\....\...\.......\............\BaseActivity.java&&............\...\....\...\.......\............\BluetoothCtrl.java&&............\...\....\...\.......\............\SamplesUtils.java&&............\...\....\...\.......\util\sysinfo.java&&............\...\....\...\util\CHexConver.java&&............\特价手机保护套.txt&&............\特价手机移动电源.txt&&............\特价手机贴膜.txt&&............\bin\classes\mobi\dzs\android\BluetoothSPP&&............\...\.......\....\...\.......\util&&............\...\.......\....\...\android&&............\...\.......\....\...\util&&............\gen\mobi\dzs\android\BluetoothSPP&&............\src\mobi\dzs\android\BluetoothSPP&&............\...\....\...\.......\util&&............\bin\classes\mobi\dzs&&............\gen\mobi\dzs\android&&............\src\mobi\dzs\android&&............\...\....\...\util&&............\bin\classes\mobi&&............\...\res\drawable-hdpi&&............\...\...\drawable-ldpi&&............\...\...\drawable-mdpi&&............\gen\mobi\dzs&&............\src\mobi\dzs&&............\bin\classes&&............\...\dexedLibs&&............\...\res&&............\gen\mobi&&............\res\drawable&&............\...\drawable-hdpi&&............\...\drawable-ldpi&&............\...\drawable-mdpi&&............\...\layout&&............\...\values&&............\src\mobi&&............\.settings&&............\bin
&[]:很好,推荐下载&[]:一般,勉强可用
&近期下载过的用户:
&&&&&&&&&&&&&&&&&&&[]
&输入关键字,在本站242万海量源码库中尽情搜索:
&[] - 一个针对Andriod平台的蓝牙串口源代码
&[] - android实现textview中间可点
&[] - 本资料介绍了基于eclipse的java开发环境的构建,Android应用程序的构成,适合初学者了解Android程序开发。同时还附带了一个剪刀石头布小游戏代码。
&[] - 蓝牙通信厮杀都发等法定分大发放大都发斯蒂芬啊发生啊大发是打发安第斯
&[] - 可控制蓝牙小车的安卓蓝牙串口
与pc串口功能一样
&[] - Android 蓝牙聊天软件源码。演示了如何建立蓝牙连接和运用蓝牙SPP发送信息。
&[] - 本程序提供android蓝牙开发的范例,包含打开蓝牙开关,让本机可见,搜索周围的蓝牙设备,蓝牙发送和接受数据。
&[] - android蓝牙串口助手 V1.1
1、搜索蓝牙设备,并显示蓝牙设备的名称和MAC地址;
2、清除已匹配的蓝牙设备;
3、接收HEX和字符数据(不包括中文)
4、发送HEX和字符数据(包括中文)
5、支持定时发送数据
6、发送和接收的字节计数
&[] - Google Android SDK开发范例大全(完整版)
里面有很多很详细的实例,对开发android应用程序非常有帮助
&[] - android 蓝牙串口搜索配对连接通讯 手机客户端 源代码蓝牙串口助手_百度百科
蓝牙串口助手
本词条缺少信息栏、名片图,补充相关内容使词条更完整,还能快速升级,赶紧来吧!
蓝牙串口助手是一款基于RFCOMM蓝牙串口服务的传输软件。
蓝牙串口助手基本信息
大小:789.27KB
更新日期:
类型:免费
最新版本:PRO
开发者:lisn3188[1]
蓝牙串口助手应用介绍
蓝牙串口助手简介:  蓝牙串口助手是一款基于RFCOMM蓝牙串口服务的传输软件,通过该软件可以连接蓝牙串口模块进行通信,实现手机串口连接。类似计算机的串口助手,是电子工程师的开发利器。该软件有以下功能:  1.发现和连接蓝牙串口模块  2.接收和发送数据  3.可选择ASCII码显示或者是HEX十六进制显示  4.发送十六进制数据  5.将串口接收到的数据保存成txt文件  6.对发送和接收的字节进行计数  V1.2新增加地面站功能:  1. 三个滑条控制,可自定义滑条名称和滑条范围  2. 四个LED状态显示。用户通过蓝牙串口发送命令可点亮或关闭LED  3. 六个返回参数显示,带可设置倍数。用户发送的参数乘以倍数再显示  4. 六个自定义按键,可设置按键的名称和点击发送的十六进制数据  作者: lisn3188   平台:android2.2及以上版本  注意:本程序已经注册成SerialPortService蓝牙串口服务程序,请不要尝试连接非蓝牙串口模块以外的设备。[1]
.安卓市场[引用日期]只需简单一步,android自带的示例程序 BluetoothChat 变蓝牙串口助手
只需简单一步,android自带的示例程序 BluetoothChat 变蓝牙串口助手
发布时间: 18:39:49
编辑:www.fx114.net
本篇文章主要介绍了"只需简单一步,android自带的示例程序 BluetoothChat 变蓝牙串口助手",主要涉及到只需简单一步,android自带的示例程序 BluetoothChat 变蓝牙串口助手方面的内容,对于只需简单一步,android自带的示例程序 BluetoothChat 变蓝牙串口助手感兴趣的同学可以参考一下。
本人菜鸟,高手勿喷
& &看到 lisn3188 龙南&&网友发布的蓝牙串口助手 的应用&&/bbs/bbs_content.jsp?bbs_sn=5289768&bbs_page_no=1&search_mode=4&search_text=duxingkei&bbs_id=9999,突然想到通过我的安卓手机蓝牙串口配合蓝牙串口模块可以实现许多有意思的应用:手机蓝牙遥控汽车 手机蓝牙转红外遥控器甚至遥控家电。
& &在研究了网上的android蓝牙串口代码后发现其代码大部分内容与android系统自带的 示例程序 BluetoothChat 相似。于是我直接把示例程序导入eclipse项目中编译并行在手机上,尝试直接用此软件连接到电脑的蓝牙串口,但是始终不成功。我开始分析代码,发现有区别的地方是 BluetoothChatService.java
的第49行 & & & &&
& & private static final UUID MY_UUID = UUID.fromString(&fa87c0d0-afac-11de-8a39-a66&);& & & & & & & & & & & &&
中的字符串不同,于是把他替换成蓝牙串口服务 (SPP) 的 UUID& & & & & & & & & & & &&
& & private static final UUID MY_UUID = UUID.fromString(&0-805F9B34FB&);
保存后运行程序到手机上,把电脑上的蓝牙打开,打开电脑上的串口助手,波特率随便设置就可以了
附图和资料
(原文件名:-21-13-48.png)&
(原文件名:-21-19-25.png)&
(原文件名:-21-20-53.png)&
(原文件名:360截图30390.jpg)&
附csdn中的博客参考资料 http://blog.csdn.net/cen/article/details/6728040&(原文件名:Android
Service和Activity基于串口蓝牙模块的双向通信【第二篇】 - - 博客频道 - CSDN_NET.mht)&
附改好的android源代码 蓝牙串口助手&(原文件名:BluetoothChat.rar)&
手机蓝牙各类服务对应的UUID(常用的几个已通过验证)
作者 haojunming&&http://blog.csdn.net/haojunming/article/details/6650568
ServiceDiscoveryServerServiceClassID_UUID = '{0-805F9B34FB}'&
BrowseGroupDescriptorServiceClassID_UUID = '{0-805F9B34FB}'&
PublicBrowseGroupServiceClass_UUID = '{0-805F9B34FB}'&
#蓝牙串口服务&
SerialPortServiceClass_UUID = '{0-805F9B34FB}'&
LANAccessUsingPPPServiceClass_UUID = '{0-805F9B34FB}'&
#拨号网络服务&
DialupNetworkingServiceClass_UUID = '{0-805F9B34FB}'&
#信息同步服务&
IrMCSyncServiceClass_UUID = '{0-805F9B34FB}'&
SDP_OBEXObjectPushServiceClass_UUID = '{0-805F9B34FB}'&
#文件传输服务&
OBEXFileTransferServiceClass_UUID = '{0-805F9B34FB}'&
IrMCSyncCommandServiceClass_UUID = '{0-805F9B34FB}'&
SDP_HeadsetServiceClass_UUID = '{0-805F9B34FB}'&
CordlessTelephonyServiceClass_UUID = '{0-805F9B34FB}'&
SDP_AudioSourceServiceClass_UUID = '{00-805F9B34FB}'&
SDP_AudioSinkServiceClass_UUID = '{00-805F9B34FB}'&
SDP_AVRemoteControlTargetServiceClass_UUID = '{00-805F9B34FB}'&
SDP_AdvancedAudioDistributionServiceClass_UUID = '{00-805F9B34FB}'&
SDP_AVRemoteControlServiceClass_UUID = '{00-805F9B34FB}'&
VideoConferencingServiceClass_UUID = '{00-805F9B34FB}'&
IntercomServiceClass_UUID = '{0-805F9B34FB}'&
#蓝牙传真服务&
FaxServiceClass_UUID = '{0-805F9B34FB}'&
HeadsetAudioGatewayServiceClass_UUID = '{0-805F9B34FB}'&
WAPServiceClass_UUID = '{0-805F9B34FB}'&
WAPClientServiceClass_UUID = '{0-805F9B34FB}'&
#个人局域网服务&
PANUServiceClass_UUID = '{0-805F9B34FB}'&
#个人局域网服务&
NAPServiceClass_UUID = '{0-805F9B34FB}'&
#个人局域网服务&
GNServiceClass_UUID = '{0-805F9B34FB}'&
DirectPrintingServiceClass_UUID = '{0-805F9B34FB}'&
ReferencePrintingServiceClass_UUID = '{0-805F9B34FB}'&
ImagingServiceClass_UUID = '{00-805F9B34FB}'&
ImagingResponderServiceClass_UUID = '{00-805F9B34FB}'&
ImagingAutomaticArchiveServiceClass_UUID = '{00-805F9B34FB}'&
ImagingReferenceObjectsServiceClass_UUID = '{00-805F9B34FB}'&
SDP_HandsfreeServiceClass_UUID = '{00-805F9B34FB}'&
HandsfreeAudioGatewayServiceClass_UUID = '{00-805F9B34FB}'&
DirectPrintingReferenceObjectsServiceClass_UUID = '{0-805F9B34FB}'&
ReflectedUIServiceClass_UUID = '{0-805F9B34FB}'&
BasicPringingServiceClass_UUID = '{0-805F9B34FB}'&
PrintingStatusServiceClass_UUID = '{0-805F9B34FB}'&
#人机输入服务&
HumanInterfaceDeviceServiceClass_UUID = '{0-805F9B34FB}'&
HardcopyCableReplacementServiceClass_UUID = '{0-805F9B34FB}'&
#蓝牙打印服务&
HCRPrintServiceClass_UUID = '{0-805F9B34FB}'&
HCRScanServiceClass_UUID = '{0-805F9B34FB}'&
CommonISDNAccessServiceClass_UUID = '{0-805F9B34FB}'&
VideoConferencingGWServiceClass_UUID = '{0-805F9B34FB}'&
UDIMTServiceClass_UUID = '{00-805F9B34FB}'&
UDITAServiceClass_UUID = '{00-805F9B34FB}'&
AudioVideoServiceClass_UUID = '{00-805F9B34FB}'&
SIMAccessServiceClass_UUID = '{00-805F9B34FB}'&
PnPInformationServiceClass_UUID = '{0-805F9B34FB}'&
GenericNetworkingServiceClass_UUID = '{0-805F9B34FB}'&
GenericFileTransferServiceClass_UUID = '{0-805F9B34FB}'&
GenericAudioServiceClass_UUID = '{0-805F9B34FB}'&
GenericTelephonyServiceClass_UUID = '{0-805F9B34FB}'
一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!
二、互相尊重,对自己的言论和行为负责。
本文标题:
本页链接:

我要回帖

更多关于 蓝牙串口通信助手 的文章

 

随机推荐