本项目用于简化android BLE的使用,解决了: 1.android手机适配 2.发送数据自动拆包,无需关注拆包问题 3.解决android BLE假连接问题 4.数据发送扁平化(把所有数据串行发送,避免资源竞争)
-
创建/获取蓝牙管理对象 TBBLEManager tbbleManager = TBBLEManager.getInstance();
-
扫描蓝牙 tbbleManager.startScan(TBBLEScanMode scanMode, UUID[] uuids, TBBLEScanCB scanCB, int workTime, int sleepTime, int workTimes) 扫描蓝牙的方式(扫描workTime毫秒 -> 停止扫描sleepTime(毫秒)->扫描workTime毫秒 -> 停止扫描sleepTime(毫秒)……)这样循环workTimes次(-1时,为循环无限次)
-
创建蓝牙连接对象 TBBLEBase tbbleBase = new TBBLEBase(TBBLEManager.getInstance(), this);
-
启动连接(连接完后,会自动发现全部服务,无需手动发现服务) tbbleBase.connect(TBBLEDevice device, int timeout, int retryTimes, TBBLEBaseCB cb); tbbleBase.connect(String mac, int timeout, int retryTimes, TBBLEBaseCB cb); timeout(毫秒)连接超时时间, retryTimes重试次数, cb 结果回调
-
获取所有服务列表 tbbleBase.getAllServices();
-
发送数据(数据无20 bytes限制,请尽情嗨,具体参考CommunicateActivity.java) TBBLEWriteCharacterAction writeCharacterAction = new TBBLEWriteCharacterAction( gData.workingChararcter, sendData, new TBBLEBaseAction.TBBLEBaseOption(), writeCB);
tbbleBase.addAction(writeCharacterAction);
-
开启接收 TBBLEEnNotifyAction notifyAction = new TBBLEEnNotifyAction(BluetoothGattCharacteristic characteristic, boolean enable, TBBLEBaseOption option, TBBLEBaseActionCB cb);
tbbleBase.addAction(notifyAction);
-
读取rssi,读取特征值(所有操作,都是添加任务的形式,只是任务对象不一样) tbbleBase.addAction(TBBLEReadRssiAction); // 添加读取rssi任务 tbbleBase.addAction(TBBLEReadCharacterAction); // 添加读取特征值任务