首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何强制flutter使用wifi而不是4G?

如何强制flutter使用wifi而不是4G?
EN

Stack Overflow用户
提问于 2019-05-16 17:40:27
回答 3查看 1.4K关注 0票数 1

我的应用程序进行本地网络呼叫。有没有办法通过flutter/dart强制http.get()通过WiFi (即使互联网不可用)而不是3G/4G?

EN

回答 3

Stack Overflow用户

发布于 2019-05-16 21:11:51

核心颤动框架还没有这个特性(至少在很长一段时间内都不会有)。

当涉及到与硬件相关的事情时,您几乎可以说本机代码是唯一的选择。好消息是有很多官方和第三方包已经为你完成了这项工作。

例如,这个包是连接相关特性的流行包:https://pub.dev/packages/connectivity

以下是您需要的示例代码:

代码语言:javascript
运行
复制
import 'package:connectivity/connectivity.dart';

var connectivityResult = await (Connectivity().checkConnectivity());
if (connectivityResult == ConnectivityResult.mobile) {
  // I am connected to a mobile network.
} else if (connectivityResult == ConnectivityResult.wifi) {
  // I am connected to a wifi network.
}
票数 4
EN

Stack Overflow用户

发布于 2019-12-31 07:57:51

有一个插件可以帮助你解决这个问题。

您需要将此https://github.com/alternadom/WiFiFlutter插件添加到您的项目中,如下所示:

代码语言:javascript
运行
复制
wifi_iot:
    git: https://github.com/alternadom/WiFiFlutter.git

然后为了强制使用wifi,你可以调用

代码语言:javascript
运行
复制
  WiFiForIoTPlugin.forceWifiUsage(true);

我保证了它的安全性,并添加了一个平台检查

代码语言:javascript
运行
复制
import 'dart:io' show Platform;
if(Platform.isAndroid) {
   WiFiForIoTPlugin.forceWifiUsage(true);
}

缺点是,当你第一次在你的应用程序中这样做时,用户将被重定向以允许应用程序更改系统设置(从那里开始,“后退”导航按钮目前不起作用)。

票数 2
EN

Stack Overflow用户

发布于 2019-05-17 23:56:35

对于flutter,这目前是不可能的。唯一的方法是通过paltform-channel使用平台原生代码。

https://flutter.dev/docs/development/platform-integration/platform-channels

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56165494

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档