getIncludedServices method

  1. @Deprecated("Not really deprecated, just not implemented in any browser (yet).")
Future<List<WebBluetoothRemoteGATTService>> getIncludedServices(
  1. String? serviceUUID
)

Get all included services from this service.

Currently no browser supports this function yet.

This function doesn't exist if the current service has no included services. Check hasGetIncludedServicesFunction to make sure.

serviceUUID according to the docs this value is optional, but I can't find what would it would do if you set it anyways.

  • May throw NativeAPINotImplementedError if the function does not exist.

  • May throw SecurityError if the service's UUID is on a blocklist.

  • May throw NetworkError if the GATT server is not connected.

  • May throw InvalidStateError if service is null.

  • May throw NotFoundError if the service was not found.

NOTE: Some services are on a block list, and are thus not available. The complete blocklist can be found here: https://github.com/WebBluetoothCG/registries/blob/master/gatt_blocklist.txt

See:

ignore: deprecated_member_use_from_same_package

Implementation

@Deprecated(
    "Not really deprecated, just not implemented in any browser (yet).")
Future<List<WebBluetoothRemoteGATTService>> getIncludedServices(
    final String? serviceUUID) async {
  if (!hasGetIncludedServicesFunction()) {
    throw NativeAPINotImplementedError("getIncludedServices");
  }
  final arguments = serviceUUID == null ? [] : [serviceUUID.toLowerCase()];
  final promise =
      _JSUtil.callMethod(_jsObject, "getIncludedServices", arguments);
  final result = await _JSUtil.promiseToFuture(promise);
  if (result is List) {
    final items = <WebBluetoothRemoteGATTService>[];
    for (final item in result) {
      try {
        items.add(WebBluetoothRemoteGATTService.fromJSObject(item, device));
      } catch (e, stack) {
        if (e is UnsupportedError) {
          webBluetoothLogger.severe(
              "Could not convert included service to BluetoothRemoteGATTService",
              e,
              stack);
        } else {
          rethrow;
        }
      }
    }
    return items;
  }
  return [];
}