【问题标题】:Trouble to connect via bluetooth with flutter_reactive_ble无法通过蓝牙与 flutter_reactive_ble 连接
【发布时间】:2022-08-17 23:27:14
【问题描述】:

???大家好!

我目前正在使用包flutter_reactive_ble

但我正在努力使连接保持一致

昨天我认为问题肯定来自:

if (connectionState.connectionState == DeviceConnectionState.connected)

因为大多数时候它以“正在连接”的形式出现,但是如果它以“正在连接”的形式出现而不像睡眠一样检查循环,我不确定如何等到它连接,这里的目标是快速,所以用户体验很好

我正在做一个麦克M1???并测试安卓???

附言: 代码不干净,但目标是让它工作。 ⚙️

希望有人能帮忙???


import \'dart:io\';
import \'dart:typed_data\';
import \'package:flutter/material.dart\';
import \'package:flutter_reactive_ble/flutter_reactive_ble.dart\';
import \'package:permission_handler/permission_handler.dart\';
import \'package:qrcode/enum/characteristic_enum.dart\';

class CadenaData extends StatefulWidget {
  CadenaData({Key? key}) : super(key: key);

  @override
  State<CadenaData> createState() => _CadenaDataState();
}

class _CadenaDataState extends State<CadenaData> {
  final flutterReactiveBle = FlutterReactiveBle();

  @protected
  @mustCallSuper


  void findCadena(BuildContext context) async {
    flutterReactiveBle.connectToDevice(
      id: \"DC:30:FC:9F:45:91\",
      connectionTimeout: const Duration(seconds: 10),
    ).listen(
      (connectionState) async {
        if (connectionState.connectionState ==   DeviceConnectionState.connected) {

    //doing stuff
         
        } else {
          print(\"connection failed\\n $connectionState.connectionState\");
        };
      },
      onError: (error) {
        print(\"error on connect $error\");
      },
    );
  }

    标签: flutter dart asynchronous bluetooth-lowenergy


    【解决方案1】:

    我用接收“FlutterReactiveBle.connectToDevice()”结果的“StreamSubscription”解决了我的问题

    还有一个 switch case 来管理流的不同输出。

    late StreamSubscription<dynamic> _currentConnectionStream;
    
     _currentConnectionStream = flutterReactiveBle
        .connectToDevice(
      id: "DC:30:FC:9F:45:91",
      connectionTimeout: const Duration(seconds: 15),
    )
        .listen(
      (connectionState) async {
    
        switch (connectionState.connectionState) {
          case DeviceConnectionState.connecting:
            print("-- Connecting to device --");
            break;
    
          case DeviceConnectionState.connected:
            print(" -- Connected --");
            break;
    
          case DeviceConnectionState.disconnecting:
            print("-- disconnecting --");
            break;
    
          case DeviceConnectionState.disconnected:
            print("-- disconnected --");
            break;
        }
      },
      onError: (error) {
        print("error on connect $error \n");
      },
    );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-05
      • 2017-03-11
      • 2018-09-29
      相关资源
      最近更新 更多