Android应用开发之Android蓝牙上位机实现发送指令与接收信息功能的方法
凌雪 2018-09-21 来源 :网络 阅读 712 评论 0

摘要:本文将带你了解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频道!

本文由 @凌雪 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程