Conceptually clients should be able to asynchronously retrieve services, for example Android has BluetoothGatt#discoverServices, macOS has CBPeripheral:discoverServices, BluetoothLEDevice::GetGattServicesAsync. Similarly APIs that use the device/bluetooth interface have async methods to retrieve services for example Web Bluetooth has BluetoothRemoteGatt.getPrimaryServices(), Chrome Apps has BluetoothDevice.getServices(), Arc++ has SearchServices, etc.
Not having such methods forces clients to implement their own waiting logic.
Conceptually clients should be able to asynchronously retrieve services, for example Android has BluetoothGatt#discoverServices, macOS has CBPeripheral:discoverServices, and Windows has BluetoothLEDevice::GetGattServicesAsync. Similarly APIs that use the device/bluetooth interface have async methods to retrieve services for example Web Bluetooth has BluetoothRemoteGatt.getPrimaryServices(), Chrome Apps has BluetoothDevice.getServices(), Arc++ has SearchServices, etc.
Not having such methods forces clients to implement their own waiting logic.
Furthermore, there could be error during service discovery but the current API does not allow us to communicate these errors to clients.
Conceptually clients should be able to asynchronously retrieve services, for example Android has BluetoothGatt#discoverServices, macOS has CBPeripheral:discoverServices, and Windows has BluetoothLEDevice::GetGattServicesAsync. Similarly APIs that use the device/bluetooth interface have async methods to retrieve services for example Web Bluetooth has BluetoothRemoteGatt.getPrimaryServices(), Chrome Apps has BluetoothDevice.getServices(), Arc++ has SearchServices, etc.
Not having such methods forces clients to implement their own waiting logic.
Furthermore, there could be errors during service discovery but the current API does not allow us to communicate these errors to clients.
This issue has been Available for over a year. If it's no longer important or seems unlikely to be fixed, please consider closing it out. If it is important, please re-triage the issue.
Sorry for the inconvenience if the bug really should have been left as Available.
For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Comment 1 by ortuno@chromium.org
, Jun 5 2017