我做了一个应用程序,连接到一个ble设备,并从它接收数据。我在提示和观察部分使用了这个链接"http://toastdroid.com/2014/09/22/android-bluetooth-low-energy-tutorial“,它说要对所有的关贸总协定操作进行排队。我该怎么做?
发布于 2016-09-20 00:22:53
查看NordicSemiconductors开放源码项目Puck Central,或者更具体地说,GattManager class,它完美地演示了如何对所有的关贸总协定操作进行排队。
但是,如果您不想自己处理这种低级蓝牙细节,我可以推荐伟大的库RxAndroidBle,它为您完成了大部分繁重的工作。
发布于 2016-09-19 09:26:16
要对请求进行排队,您可以创建一个具有请求数组列表的queue类。
每次要发出请求时,将其添加到队列中并开始处理队列(如果队列尚未处理)。处理完当前项后,检查是否还有要处理的项,然后继续处理它们。
您可能还需要添加一个超时,以防其中一个请求被卡住。
关于如何使用处理程序处理队列的示例代码:
private void startProcessingQueue() {
if (queueIsRunning) {
return;
}
queueIsRunning = true;
h.postDelayed(new Runnable(){
public void run(){
processQueue();
if(queue.isEmpty()) {
queueIsRunning = false;
return;
}
h.postDelayed(this, QUEUE_PROCESSING_DELAY);
}
}, QUEUE_PROCESSING_DELAY);
}https://stackoverflow.com/questions/39532768
复制相似问题