蓝牙开发之从手机走向PC【2】——手机与手机之间的通信实现 - 编程入门网
作者 佚名技术
来源 NET编程
浏览
发布时间 2012-06-20
服务的类 * @author royen * @since 2010.1.24 */ public class BlueClientService implements Runnable,DiscoveryListener{ //目标服务标识 private final static UUID TARGET_UUID=new UUID("F0E0D0C0B0A000908070605040302010",false); //存储发现的设备和服务的集合 private Vector devices=new Vector(); private Vector records=new Vector(); //存储服务属性的集合 private UUID[] uuidSet=null; //蓝牙发现代理类 private DiscoveryAgent discoveryAgent=null; //客户端界面 private BlueClient clientForm; //服务搜索的事务id集合 private int[] transIDs; //存活的服务索引 private int activeIndex=-1; public BlueClientService(BlueClient frm){ this.clientForm=frm; } public synchronized void run() { //发现设备和服务的过程中,给用户以Gauge Gauge g=new Gauge(null,false,Gauge.INDEFINITE,Gauge.CONTINUOUS_RUNNING); clientForm.append(g); //如果初始化失败 if(!initLocalDevice()){ clientForm.appendInfo("bluetooth init failed~"); return; } //生成服务和属性的全球唯一标示符 uuidSet=new UUID[2]; uuidSet[0]=new UUID(0x1101); //0x1101表示 采用btspp协议 uuidSet[1]=TARGET_UUID; //目标服务标示 try{ discoveryAgent.startInquiry(DiscoveryAgent.GIAC, this); } catch(Exception ex){ clientForm.appendInfo(ex.getMessage()); return; } try{ //阻塞,由inquiryCompleted函数回调唤醒 wait(); } catch(InterruptedException ex){ clientForm.appendInfo(ex.getMessage()); return; } //添加显示信息 clientForm.appendInfo("search device completed,find "+devices.size()+" devices~"); clientForm.appendInfo("now begin to search service..."); transIDs=new int[devices.size()]; //遍历开启目标服务的蓝牙设备 for(int i=0;i<devices.size(); i++ ){ RemoteDevice rd=(RemoteDevice)devices.elementAt(i); try{ //记录每一次服务搜索的事务ID transIDs[i]=discoveryAgent.searchServices(null, uuidSet, rd, this); } catch(BluetoothStateException ex){ continue; } } tr |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于蓝牙开发之从手机走向PC【2】——手机与手机之间的通信实现 - 编程入门网的所有评论