再问安卓蓝牙通讯的问题

2019-03-26 12:36发布

本帖最后由 chenbingjy 于 2015-10-16 15:23 编辑

我在搞安卓蓝牙通讯,用手机和单片机板子上的蓝牙通讯。
手机给板子上的蓝牙模块发数据,蓝牙模块收到数据再回复给手机。
手机收到数据再显示。可是领导要求显示16进制,比如AA AA AA 96 30 EF 20 DB ....
可是显示的是ASCII字符。安卓手机接收数据程序如下:
//接收数据线程
    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;
                                            
                                            String s0 = new String(buffer,0,num);
                                            fmsg+=s0;    //保存收到数据
                                            for(i=0;i<num;i++){
                                                    if((buffer == 0x0d)&&(buffer[i+1]==0x0a)){
                                                            buffer_new[n] = 0x0a;
                                                            i++;
                                                    }else{
                                                            buffer_new[n] = buffer;
                                                    }
                                                    n++;
                                            }
                                            
                                            
                                            String s = new String(buffer_new,0,n);
                                            smsg+=s;   //写入接收缓存
                                          
                                            
                                            break;  //短时间没有数据才跳出进行显示
                                    }
                                    //发送显示消息,进行显示刷新
                                    
                                            handler.sendMessage(handler.obtainMessage());
                                            
                                }catch(IOException e){
                                }
                    }
            }
    };

此帖出自Linux与安卓论坛
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。