【问题标题】:Checking Internet Connection in release mode does not work在发布模式下检查 Internet 连接不起作用
【发布时间】:2019-03-30 23:27:40
【问题描述】:

我正在尝试在发出 api 请求之前检查互联网连接。以下是我检查互联网的辅助功能

Future<bool> checkInternetConnection() async {
  try {
    final result = await InternetAddress.lookup('google.com');
    if (result.isNotEmpty && result[0].rawAddress.isNotEmpty) {
      return true;
    }
  } on SocketException catch (_) {
    return false;
  }
  return false;
}

上面的帮助函数在 Android 的调试模式下可以正常工作,但对于 Android 的发布模式,即使互联网连接可用,它也会返回 false。我尝试了 Wifi 和移动数据。上述功能在 iOS 中可以正常使用。

【问题讨论】:

  • java 代码工作正常吗?
  • 我认为您应该提出问题here,您是否在另一部手机上尝试过?
  • @HasanKucuk 什么java代码,这是dart。
  • @CopsOnRoad 我试过酷派的棉花糖和一加 6 的馅饼。

标签: android dart flutter


【解决方案1】:

您需要在 Flutter 应用程序的android 目录下的your-flutter-app/android/app/src/main/AndroidManifest.xml 中添加 Internet 权限。您的应用程序在调试模式下工作,因为your-flutter-app/android/app/src/debug/AndroidManifest.xml 中必须有 Internet 权限

<!-- Add this in src/main/AndroidManifest.xml inside android directory of Flutter app -->
<uses-permission android:name="android.permission.INTERNET"/>

【讨论】:

    猜你喜欢
    • 2022-01-22
    • 2021-07-01
    • 1970-01-01
    • 2021-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-16
    • 2022-08-08
    相关资源
    最近更新 更多