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){
    	    		}
    		}
    	}
    }
  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值