state method

Returns the BITalinoState of the connected device. The BITalinoState object has properties:

Throws BITalinoException(BITalinoErrorType.NOT_IMPLEMENTED_IOS) if this method is called on IOS devices. Throws BITalinoException(BITalinoErrorType.TIMEOUT) if the timeout limit is reached. Throws BITalinoException(BITalinoErrorType.BT_DEVICE_NOT_CONNECTED) if a device is not connected. Throws BITalinoException(BITalinoErrorType.BT_DEVICE_CANNOT_BE_RECORDING) if the device is recording. Throws BITalinoException(BITalinoErrorType.CUSTOM) if a native exception was raised.

Implementation

Future<BITalinoState> state() async {
  if (Platform.isIOS)
    throw BITalinoException(BITalinoErrorType.NOT_IMPLEMENTED_IOS);
  if (!connected)
    throw BITalinoException(BITalinoErrorType.BT_DEVICE_NOT_CONNECTED);
  if (recording)
    throw BITalinoException(BITalinoErrorType.BT_DEVICE_CANNOT_BE_RECORDING);

  try {
    return BITalinoState._fromPlatformData(await (_channel
        .invokeMethod("state")
        .timeout(timeout) as FutureOr<Map<dynamic, dynamic>>));
  } on TimeoutException {
    throw BITalinoException(BITalinoErrorType.TIMEOUT);
  } catch (e) {
    throw BITalinoException(BITalinoErrorType.CUSTOM, e.toString());
  }
}