• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

uni-app获取手机可接收的所有的WiFi名称和信号强度

武飞扬头像
追逐X
帮助1

文章目录


前言

关键词:HBuilder uniapp wifi RSSI SSID

最近做项目有一个需求,要求用HBuilder uniapp做一个app显示手机可接收的WiFi名称和对应的场强(信号强度),百度找了一圈,只找到了关于WiFi名称的一些资料,于是根据一篇文章修改了一下(附在文末),最终很nice的解决了我的问题。有一定的参考价值,感兴趣的小伙伴们可以参考一下。(9.6号)

一、代码及注释

index.vue 代码如下:
 

  1.  
    <template>
  2.  
        <view>
  3.  
            home---{{title}}
  4.  
            <button type="default" @click="getWifiInfo">获取wifi信息</button>
  5.  
        </view>
  6.  
    </template>
  7.  
     
  8.  
    <script>
  9.  
        // const gbWiFi = uni.requireNativePlugin('Googbuild-WIFI');
  10.  
        const FvvUniWifiHelper = uni.requireNativePlugin("Fvv-UniWifiHelper");
  11.  
        export default {
  12.  
            data() {
  13.  
                return {
  14.  
                    title: "",
  15.  
                    wifiArray:[],
  16.  
                }
  17.  
            },
  18.  
            onLoad() {
  19.  
                
  20.  
            },
  21.  
        
  22.  
            methods: {
  23.  
                getWifiInfo () {
  24.  
                    //在手机上显示
  25.  
                    uni.showModal({
  26.  
                        title: "alert 弹窗标题",
  27.  
                        //content: "弹窗内容,告知当前状态、信息和解决方法,描述文字尽量控制在三行内",
  28.  
                        content: this.getWiFiIP(),
  29.  
                        showCancel: false,
  30.  
                        confirmText: "确定",
  31.  
                        confirmColor: "#00ffff",
  32.  
                        success(res) {
  33.  
                            if (res.confirm) {
  34.  
                                console.log('确认')                                   
  35.  
                            }
  36.  
                        }
  37.  
                    })    
  38.  
                },
  39.  
                // 获取WiFi信息
  40.  
                getWiFiIP() {
  41.  
                    // MainActivity
  42.  
                    var MainActivity = plus.android.runtimeMainActivity()
  43.  
                    // Context
  44.  
                    var Context = plus.android.importClass('android.content.Context')
  45.  
                    // WiFi 相关包  
  46.  
                    plus.android.importClass("android.net.wifi.WifiManager")
  47.  
                    plus.android.importClass("android.net.wifi.WifiInfo")
  48.  
                    plus.android.importClass("android.net.wifi.ScanResult")
  49.  
                    plus.android.importClass("java.util.ArrayList")
  50.  
                    // WiFi 管理实例
  51.  
                    var wifiManager = MainActivity.getSystemService(Context.WIFI_SERVICE)
  52.  
                    // 开启 WiFi
  53.  
                    // wifiManager.setWifiEnabled(true)
  54.  
                    // 当前连接 WiFi 信息 
  55.  
                    var wifiInfo = wifiManager.getConnectionInfo()
  56.  
                    
  57.  
                    console.log(wifiInfo.toString())//打印当前连接 WiFi 的所有信息
  58.  
                    
  59.  
                    var wifirssi = wifiInfo.getRssi()// 获取当前链接 WiFi 的信号强度
  60.  
                    console.log(wifirssi)//打印 WiFi 的信号强度
  61.  
                    
  62.  
                    var ssid = wifiInfo.getSSID()// 获取当前 WIFI 连接的 SSID (WIFI 名称)  
  63.  
                    ssid = ssid.replace(/(^\"*)|(\"*$)/g, "")  
  64.  
                    console.log(ssid)//打印 WIFI 名称
  65.  
                    console.log(ssid "," "信号强度:" wifirssi)
  66.  
                    
  67.  
                    //注意 getConnectionInfo() 与 getScanResults() 的区别
  68.  
                    var resultList = wifiManager.getScanResults(),//扫描得到的wifi信号集合
  69.  
                        len = resultList.size() 
  70.  
                    var wifiScanResults = '' //定义wifiScanResults
  71.  
                    console.log(resultList)
  72.  
                    
  73.  
                    //注:获取resultList中的场强信息用的是 level 而不是 RSSI
  74.  
                    
  75.  
                    for(var i = 0; i < len; i ) {
  76.  
                      console.log(resultList.get(i).plusGetAttribute('SSID') " 信号:" resultList.get(i).plusGetAttribute('level'))
  77.  
                      //将每一个ssid与rssi 都添加到wifiArray数组中,用于绑定显示,根据个人业务取舍 wifiArray=[{name:WiFi的SSID}]
  78.  
                      let oneWiFi={
  79.  
                          name:resultList.get(i).plusGetAttribute('SSID'),
  80.  
                             signal:resultList.get(i).plusGetAttribute('level')
  81.  
                      }
  82.  
                      this.wifiArray.push(oneWiFi);
  83.  
                      wifiScanResults = wifiScanResults ',' this.wifiArray[i].name ' 信号:' this.wifiArray[i].signal "\n";//打印内容
  84.  
                    }
  85.  
                    return wifiScanResults//返回
  86.  
                    
  87.  
                    
  88.  
                }
  89.  
                    
  90.  
            },
  91.  
            
  92.  
        }
  93.  
    </script>
  94.  
     
  95.  
    <style>
  96.  
     
  97.  
    </style>
学新通


总结

(有不懂的可以私信我,我会在文章中进行补充)

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgachab
系列文章
更多 icon
同类精品
更多 icon
继续加载