我的应用拨打本地网络电话。是否可以通过flutter / dart强制通过WiFi(即使无法使用Internet)而不是3G / 4G强制http.get()?
答案 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);
}
缺点是,第一次在应用程序中执行此操作时,将重定向用户以允许该应用程序更改系统设置(此后,“后退”导航按钮目前不起作用)