MissingPluginException(在频道 plugins.pauldemarco.com/flutter_blue/methods 上找不到方法 isAvailable 的实现)

时间:2021-02-04 17:00:25

标签: flutter dart plugins bluetooth dart-isolates

我的颤振应用。 我试图在后台获取所有 BLE 设备,激活表单 printHello() 函数。

我有以下错误: 以下行的错误 - FlutterBlue _flutterBlue = FlutterBlue.instance;

有人有新的信息吗? 我看到了类似的问题并尝试实施它们,但我无法解决问题。

这里是日志:

I/flutter (20509): [2021-02-04 18:39:34.118258] Start Scanning
I/flutter (20509): [2021-02-04 18:39:34.118258] end of scanning
E/flutter (20509): [ERROR:flutter/lib/ui/ui_dart_state.cc(177)] Unhandled Exception: MissingPluginException(No implementation found for method isAvailable on channel plugins.pauldemarco.com/flutter_blue/methods)
    Future<void> main() async {
      WidgetsFlutterBinding.ensureInitialized();
      final int helloAlarmID = 0;
      await AndroidAlarmManager.initialize();
      runApp(MyApp());
      await AndroidAlarmManager.periodic(const Duration(seconds: 30), helloAlarmID, printHello);
    }

    void printHello() {
      final DateTime now = DateTime.now();
      final int isolateId = Isolate.current.hashCode;
      print("[$now] Hello, world! isolate=${isolateId} function='$printHello'");
      _getDevices();
    
    }

    void _getDevices() {
      final DateTime now = DateTime.now();
      print("[$now] Start Scanning");
       bool _found = false;
       FlutterBlue _flutterBlue = FlutterBlue.instance;
      _flutterBlue.startScan(timeout: Duration(seconds: 4));
      var subscription = _flutterBlue.scanResults.listen((results) {
        for (ScanResult r in results) {
    //      print('111 ${r.device.name} 2 ${r.device.id } 3 found! rssi: ${r.rssi}');
          if (('${r.device.id }'=="XXX" )& (_found==false)) { print ("[$now] ----------");_found = true;     
     }
        }
        });
      _flutterBlue.stopScan();
      print("[$now] end of scanning");
    
    }

1 个答案:

答案 0 :(得分:0)

我将侦听器移动到主屏幕中的 initState() 及其工作

  flutterBlueInstance.scan().listen((event) {
    var _event = event;
    if (_event.advertisementData.localName.toString() == .....             }