Android BLE如何从设备下载所有数据?

Android BLE如何从设备下载所有数据?,android,bluetooth-lowenergy,Android,Bluetooth Lowenergy,我正在构建一个应用程序,从一个可下载设备下载所有信息。此可编程设备有两个读取特性 我必须读取这些特征,直到BLE设备具有数据存储。所以我创建了一个循环,并等待BLE设备有数据,我调用readCharacteristic方法 因此,我创建了一个具有我的特征的队列来读取。代码如下: if(ReadQueue!= null && ReadQueue.size()>0){ new Thread(new Runnable() {

我正在构建一个应用程序,从一个可下载设备下载所有信息。此可编程设备有两个读取特性

我必须读取这些特征,直到BLE设备具有数据存储。所以我创建了一个循环,并等待BLE设备有数据,我调用readCharacteristic方法

因此,我创建了一个具有我的特征的队列来读取。代码如下:

if(ReadQueue!= null && ReadQueue.size()>0){
                        new Thread(new Runnable() {
                            @Override
                            public void run() {
                                int index =0;
                                for(index=0; index < ReadQueue.size(); index++){
                                    mGatt.readCharacteristic(ReadQueue.get(index));
                                }

                            }
                        }).start();
                    }

现在,有没有一种方法可以下载循环中的所有特征?

按顺序调用readCharacteristic(毫不延迟)将不起作用

在启动第二个呼叫之前,您必须等待第一个呼叫


使用connectGatt连接到BLE设备时,必须提供BluetoothGattCallback。在BluetoothGattCallback对象中实现onCharacteristicRead,它将在每个readCharacteristic实际完成后调用。在该函数中,您应该读取队列中的下一个特征,直到没有。

如何等待onCharacteristicRead在启动第二个特征之前完成您的代码???@bircastri编辑以添加更多描述。如果您能展示如何维护ReadQueue对象,或许我可以编写一个简短的示例。
 mGatt.readCharacteristic(ReadQueue.get(index));