flutter如何获取网络运营商信息

在Flutter中如何获取当前设备的网络运营商信息?比如SIM卡所属的运营商名称(中国移动、中国联通等)。我尝试过一些插件但效果不理想,官方似乎没有提供直接支持的API。请问有什么可靠的第三方库或原生平台代码可以实现这个功能?最好能兼容Android和iOS平台,并说明是否需要特殊权限。

2 回复

Flutter中获取网络运营商信息可使用telephonyconnectivity_plus插件。通过getSimOperator()方法获取MCC和MNC代码,再映射为运营商名称。需添加网络权限。

更多关于flutter如何获取网络运营商信息的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在 Flutter 中获取网络运营商信息,可以使用 connectivity_plus 插件获取网络类型,结合 network_info_plus 插件获取运营商名称。以下是具体步骤:

  1. 添加依赖
    pubspec.yaml 中添加:

    dependencies:
      connectivity_plus: ^5.0.2
      network_info_plus: ^4.1.0
    
  2. 获取运营商信息
    示例代码:

    import 'package:connectivity_plus/connectivity_plus.dart';
    import 'package:network_info_plus/network_info_plus.dart';
    
    Future<void> getOperatorInfo() async {
      final connectivity = Connectivity();
      final networkInfo = NetworkInfo();
    
      // 检查网络连接类型
      var connectivityResult = await connectivity.checkConnectivity();
      
      if (connectivityResult == ConnectivityResult.mobile) {
        // 获取运营商名称
        String? operatorName = await networkInfo.getMobileOperatorName();
        print("当前运营商: ${operatorName ?? '未知'}");
      } else {
        print("当前未使用移动网络");
      }
    }
    
  3. 注意事项

    • Android:需要添加权限(在 AndroidManifest.xml 中):
      <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
      
    • iOS:无需额外配置,但仅支持蜂窝网络时获取运营商名称。

说明

  • getMobileOperatorName() 在 Android 和 iOS 上返回运营商名称(如 “China Mobile”),若无法获取则返回 null
  • 此方法仅在移动网络下有效,Wi-Fi 连接时无法获取运营商信息。

建议在实际使用中处理权限请求和异常情况。

回到顶部