MethodChannelBtService constructor
MethodChannelBtService()
Implementation
MethodChannelBtService() {
final events = _eventChannel.receiveBroadcastStream();
_dataStream = events
.where((e) => e is Map && e['event'] == 'data')
.map<Uint8List>((e) {
try {
final data = e['data'];
if (data is String) {
return base64Decode(data);
}
return Uint8List(0);
} catch (e) {
// Return empty bytes on error to prevent crash
return Uint8List(0);
}
})
.asBroadcastStream();
_stateStream = events
.where((e) => e is Map && e['event'] == 'state')
.map<String>((e) {
try {
final state = e['state'];
return state?.toString() ?? 'unknown';
} catch (e) {
return 'error';
}
})
.asBroadcastStream();
_deviceStream = events
.where((e) => e is Map && e['event'] == 'device')
.map<Map<String, dynamic>>((e) {
try {
final device = e['device'];
if (device is Map) {
return Map<String, dynamic>.from(device);
}
return <String, dynamic>{};
} catch (e) {
// Return empty map on error to prevent crash
return <String, dynamic>{};
}
})
.asBroadcastStream();
}