动态获取wifi名称

使用第三方插件

  • connectivity_plus 用来监听切换网络的变化
  • network_info_plus 用来获取 wifi 的名称

值得注意的是 根据文档中配置 network_info_plus 获取wifi的名称返回的是 null, 原因是需要获取安卓的权限,还需要通过获取应用的定位信息

第一步配置安卓权限

在 android/app/src/main/AndroidMainifest.xml 中配置

<!-- 获取WIFI信息 -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

在 android/app/build.gradle 文件中添加

    defaultConfig {
       ...
       ndk {
           abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
      }
  }

使用 在组件中的 onInit 周期中使用

  @override
 void onInit()async{
   super.onInit();
   // 监听网络变化
   await checkLocationPermission();
   final connectivity = Connectivity();
   connectivity.onConnectivityChanged.listen((event) async {
     if (event == ConnectivityResult.wifi) {
       await checkLocationPermission();
    }
  });
}
/*授权获取位置权限用于获取无线名称 */
 checkLocationPermission()async{
   LocationPermission permission = await Geolocator.checkPermission();
   if (permission == LocationPermission.denied) {
     permission = await Geolocator.requestPermission();
     if (permission == LocationPermission.denied) {
       print('位置授权被拒了');
    }
  }
   if (permission == LocationPermission.deniedForever) {
     print("位置授权被永久拒了");
  }
   // 授权通过
   getCurrentWifiName();
}
/**获取当前无线名称 */
 getCurrentWifiName() async {
   final info = NetworkInfo();
   final getWifiName = await info.getWifiName();
   var formatWifiName = getWifiName?.replaceAll('"','');
   wifiName.value = formatWifiName??'请检查网络连接';
   update();
}
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇