摘要:本文将带你了解Android应用开发之Android蓝牙上位机实现发送指令与接收信息功能的方法,希望本文对大家学Android有所帮助。
本文将带你了解Android应用开发之Android蓝牙上位机实现发送指令与接收信息功能的方法,希望本文对大家学Android有所帮助。
现市面上的蓝牙模块基本都相同,开发者只需要下载本文源程序,然后按如下注释处,更改发送指令的内容就可以了。
//发送按键响应 public void onSendButtonClicked(View v){ try{ OutputStream os = _socket.getOutputStream();//蓝牙连接输出流 byte[] bos = {0X53,0x4E,0x06,0x00,0x04,0x05,0x00,0x00,0x0F}; //花括号内是要发送的指令,根据需要更改,这里是我随便输入的 os.write(bos); }catch(IOException e){ } }
下面是接收数据线程,接收数据转换为16进制数的字符串进行显示,在注释的代码部分,若要修改数据显示的编码方式,在此处。
//接收数据线程 Thread ReadThread=new Thread(){ public void run(){ int num = 0; byte[] buffer = new byte[1024]; byte[] buffer_new = new byte[1024]; int i = 0; int n = 0; bRun = true; //接收线程 while(true){ try{ while(is.available()==0){ while(bRun == false){} } while(true){ num = is.read(buffer); //读入数据 n=0; for(i=0;i<num;i++){ if((buffer[i] == 0x0d)&&(buffer[i+1]==0x0a)){ buffer_new[n] = 0x0a; i++; }else{ buffer_new[n] = buffer[i]; } n++; } String s = ""; for (int i = 0; i < bos.length; i++) { String hex = Integer.toHexString(bos[i] & 0xFF); if (hex.length() == 1) { hex = '0' + hex; } s += hex.toUpperCase()+" "; } // for循环和Integer.toHexString()方法实现byte数组转换成16进制字符串 smsg+=s; //写入接收缓存 if(is.available()==0)break; //短时间没有数据才跳出进行显示 } //发送显示消息,进行显示刷新 handler.sendMessage(handler.obtainMessage()); }catch(IOException e){ } } } }
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注移动开发之Android频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号