connectedDevice property

Stream<BLEDevice> get connectedDevice

연결된 디바이스를 찾는다.

Implementation

Stream<BLEDevice> get connectedDevice async* {
  final List deviceInfo =
      await _methodChannel.invokeMethod('connected_device');

  String name = deviceInfo[0];
  String address = deviceInfo[1];
  BondState bondState = BondState.getObj(deviceInfo[2]);
  bool isConnected = deviceInfo[3];
  BLEDevice device = BLEDevice(
      name: name,
      address: address,
      bondState: bondState,
      isConnected: isConnected);

  logger.d("$name $address $bondState $isConnected");

  yield device;

  Stream<BLEDevice> stream =
      _connectedDeviceEventChannel.receiveBroadcastStream().map((deviceInfo) {
    if (deviceInfo != null) {
      String name = deviceInfo[0];
      String address = deviceInfo[1];
      BondState bondState = BondState.getObj(deviceInfo[2]);
      bool isConnected = deviceInfo[3];
      BLEDevice device = BLEDevice(
          name: name,
          address: address,
          bondState: bondState,
          isConnected: isConnected);
      return device;
    } else {
      return BLEDevice(name: "", address: "", bondState: BondState.none);
    }
  });
  yield* stream;
}