flutter wifi静默链接

flutter wifi静默连接

首先是插件的推荐

wifi_iot 一款比较好用的flutter插件 里面有实际DEMO可以操作
https://pub.flutter-io.cn/packages/wifi_iot/example

代码实现

首先思考下,实现静默连接需要几个步骤
1.需要知道wifi的名字和密码
2.需要开启wifi
3.需要扫描附件wifi是否有我们需要连接的wifi
这么一看是不是需求非常简单了


List<WifiNetwork?>? _htResultNetwork;
const NetworkSecurity STA_DEFAULT_SECURITY = NetworkSecurity.WPA;

Future<List<WifiNetwork>> loadWifiList() async {
  List<WifiNetwork> htResultNetwork;
  try {
    htResultNetwork = await WiFiForIoTPlugin.loadWifiList();
  } on PlatformException {
    htResultNetwork = <WifiNetwork>[];
  }

  return htResultNetwork;
}

void getname() async {  
   // 获取扫描到的wifi列表
  _htResultNetwork = await loadWifiList();
  if (_htResultNetwork != null && _htResultNetwork!.length > 0) {
    _htResultNetwork!.forEach((element) {
    // 遍历到的wifi名字
      print(element!.ssid!);
      var a = 'iPhone 13 Pro Max';
      // 判断扫描到的wifi是否有我们需要的wifi
      if (element.ssid == a) {
        print('扫描到了');
        //连接wifi
        WiFiForIoTPlugin.connect(a,
            password: 'gcynb666',
            joinOnce: true,
            security: STA_DEFAULT_SECURITY);
      }
    });
  }
}

这样我们打开APP就能实现静默连接wifi了,进阶需求就不再展示了,可以从示例中修改

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
您可以使用flutterwifi_iot插件来实现弹出WIFI选择连接的页面,并返回给调用页面的功能。以下是一个简单的示例代码: 首先,您需要在pubspec.yaml文件中添加wifi_iot插件的依赖: ``` dependencies: wifi_iot: ^0.1.2 ``` 然后,您可以使用以下代码在您的页面中弹出WIFI选择连接的页面: ``` import 'package:flutter/material.dart'; import 'package:wifi_iot/wifi_iot.dart'; class WifiPage extends StatefulWidget { @override _WifiPageState createState() => _WifiPageState(); } class _WifiPageState extends State<WifiPage> { List<WifiNetwork> _networks = []; @override void initState() { super.initState(); _getWifiList(); } Future<void> _getWifiList() async { List<WifiNetwork> networks = await WifiFlutter.list(''); setState(() { _networks = networks; }); } Future<void> _connectToWifi(WifiNetwork wifi) async { await WifiFlutter.connect(wifi.ssid); Navigator.pop(context, wifi.ssid); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('WIFI'), ), body: ListView.builder( itemCount: _networks.length, itemBuilder: (BuildContext context, int index) { WifiNetwork wifi = _networks[index]; return ListTile( title: Text(wifi.ssid), onTap: () => _connectToWifi(wifi), ); }, ), ); } } ``` 在这个示例中,我们使用了wifi_iot插件中的WifiFlutter类来获取WIFI列表和连接WIFI。在页面加载时,我们调用_getWifiList()方法获取WIFI列表,并将它们显示在ListView中。当用户点击列表项时,我们调用_connectToWifi()方法连接WIFI,并使用Navigator.pop()返回选择的WIFI名称。 您可以在调用页面中使用Navigator.push()方法来打开这个页面,并等待返回的WIFI名称: ``` String wifiName = await Navigator.push( context, MaterialPageRoute(builder: (context) => WifiPage()), ); ``` 请注意,这只是一个简单的示例,您需要根据您的实际需求进行修改和完善。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

oomsday

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值