Flutter 如何检查我的设备是不是通过蓝牙连接到另一台设备

Posted

技术标签:

【中文标题】Flutter 如何检查我的设备是不是通过蓝牙连接到另一台设备【英文标题】:Flutter How can I check if my device is connected to another device with Bluetooth or notFlutter 如何检查我的设备是否通过蓝牙连接到另一台设备 【发布时间】:2020-04-19 23:37:22 【问题描述】:

我正在编写一个 Flutter 应用程序来检查我的设备是否连接到另一个设备、+-蓝牙设备或全部连接。

我在 Flutter 文档中找到的内容无法帮助我,因为我首先检查蓝牙是否打开。我向用户询问它,因为它在代码中显示,但我无法检查设备是否已连接。我用 wifi 做到了,但用蓝牙却不行。

        @override
        Widget build(BuildContext context) 
      return MaterialApp(
        color: Colors.lightBlue,
        home: StreamBuilder<BluetoothState>(
      stream: FlutterBlue.instance.state,
      initialData: BluetoothState.unknown,
      builder: (c, snapshot) 
        final state = snapshot.data;
        if (state == BluetoothState.off)
          // ignore: missing_return
         return Bluetoth();
        else return Find();
      ),
            );
          

   // open bluetooth  if closed
         class BluetothState extends State<Bluetoth>
         
         void initState()
              super.initState();
            aa();
             
           Future aa() async 
      // async lambda seems to not working
      print('ccc');
  await FlutterBluetoothSerial.instance.requestEnable();

       
              class _FindState extends State<Find> 
                   //check bluetooth connectivity


              

【问题讨论】:

【参考方案1】:

使用connectedDevices 未来:

var _flutterBlue = FlutterBlue.instance;
_flutterBlue.connectedDevices.then((value) 
  //Do your processing
);

【讨论】:

它总是返回 True 它返回一个设备列表,它不能返回一个布尔值。什么返回 true? 一个列表???该设备一次只能连接到一个设备

以上是关于Flutter 如何检查我的设备是不是通过蓝牙连接到另一台设备的主要内容,如果未能解决你的问题,请参考以下文章

Flutter 应用需要检查蓝牙和位置是不是启用

如何在代码中检查我的设备是不是支持连接的最大蓝牙?

在 Linux 上检查连接的蓝牙设备的电池电量

Android 蓝牙开发-打开蓝牙后能不能立即连接固定地址的蓝牙设备??还是需要进行判断啥的?

连接核心蓝牙或经典蓝牙设备是不是需要 CoreLocation 框架

如何在 Flutter 中与蓝牙连接和通信