我创建了一个应用程序连接到ble设备并从中接收数据。我正在关注此链接" http://toastdroid.com/2014/09/22/android-bluetooth-low-energy-tutorial"在提示和观察部分,它说要排队所有关贸总协定的行动。我怎么做?
答案 0 :(得分:2)
要对请求进行排队,您可以创建一个具有Arraylist请求的队列类。
每次要发出请求时,请将其添加到队列并开始处理队列(如果队列尚未处理)。处理完当前项目后,检查是否仍有待处理的项目并继续处理。
如果其中一个请求被卡住,您可能还需要添加超时。
有关如何使用处理程序处理队列的示例代码:
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);
}
答案 1 :(得分:1)
查看NordicSemiconductors开源项目Puck Central,或者更具体地说是GattManager class,他们完美地演示了如何对所有GATT操作进行排队。
如果你不想自己处理这种低级别的蓝牙特性,我可以推荐一款很棒的图书馆RxAndroidBle,它可以帮助你解决很多问题。