如何迫使扑扑使用wifi而不是4G?

时间:2019-05-16 09:40:27

标签: dart flutter wifi internet-connection

我的应用拨打本地网络电话。是否可以通过flutter / dart强制通过WiFi(即使无法使用Internet)而不是3G / 4G强制http.get()?

3 个答案:

答案 0 :(得分:1)

Core Flutter框架还没有该功能(至少很长一段时间不会有imo)。

当涉及到与硬件相关的事情时,您几乎可以说本机代码是唯一可行的方法。好在有许多官方和第三方软件包已经为您完成了工作。

例如,此软件包是与连接相关的功能的最受欢迎的软件包:https://pub.dev/packages/connectivity

这是您需要的示例代码:

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.
}

答案 1 :(得分:0)

当前无法通过颤振实现。唯一的方法是通过paltform-channels使用平台本机代码。

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

答案 2 :(得分:0)

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

您需要像这样将这个https://github.com/alternadom/WiFiFlutter插件添加到您的项目中:

wifi_iot:
    git: https://github.com/alternadom/WiFiFlutter.git

然后强行呼叫您的wifi

  WiFiForIoTPlugin.forceWifiUsage(true);

我确保了安全并添加了平台检查

import 'dart:io' show Platform;
if(Platform.isAndroid) {
   WiFiForIoTPlugin.forceWifiUsage(true);
}

缺点是,第一次在应用程序中执行此操作时,将重定向用户以允许该应用程序更改系统设置(此后,“后退”导航按钮目前不起作用)