我已經發起了一個BLE連接,在onServicesDiscovered
我要讀出所有的描述符。有五他們和我繼續此:GATT onDescriptorRead - 只有一個回調
for (int n=0;n<descriptors.size();n++)
{
gatt.readDescriptor(descriptors.get(n));
}
描述符包含所有描述符... 然後讀回調被調用,我要讀出描述符值:
@Override
public void onDescriptorRead(BluetoothGatt gatt, final BluetoothGattDescriptor descriptor, int status)
{
deviceInfoArray.add(new ItemSlideMenu(new String(descriptor.getValue()));
}
問題是,讀取回調只調用一次,而不是五次。你能告訴我爲什麼以及如何解決這個問題嗎?
有沒有辦法檢查gatt Operation是否正在運行?我想將它們排隊在一起,但我不確定哪一個按時運行。 –
API沒有辦法檢查。你必須以線程安全的方式自己完成 – Emil
嗯..我寫下了所有的操作,現在手動檢查它們。很棒! –