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());
}
}