export default { data() { return { // 默认的全局分享内容 wifiManager: null, wifiManager: null, arrayList: null, } }, initWifi() { const MainActivity = plus.android.runtimeMainActivity(); const Context = plus.android.importClass("android.content.Context"); this.arrayList = plus.android.importClass("java.util.ArrayList"); plus.android.importClass("android.net.wifi.WifiManager"); plus.android.importClass("android.net.wifi.WifiInfo"); plus.android.importClass("android.net.wifi.ScanResult"); this.WifiConfiguration = plus.android.importClass("android.net.wifi.WifiConfiguration"); this.wifiManager = MainActivity.getSystemService(Context.WIFI_SERVICE); }, openWifiSetting() { let main = plus.android.runtimeMainActivity(); let Intent = plus.android.importClass("android.content.Intent"); let intent = new Intent(); intent.setAction("android.settings.WIFI_SETTINGS"); // 指定action为跳转到WLAN设置界面 main.startActivity(intent); }, getConnectionWifi() { const wifiInfo = this.wifiManager.getConnectionInfo() let ssid = wifiInfo.getSSID(); // 获取SSID let mac = wifiInfo.getBSSID(); // 获取mac地址 let ipAddress = wifiInfo.getIpAddress(); let ip = `${(ipAddress & 0xff)}.${(ipAddress >> 8 & 0xff)}.${(ipAddress >> 16 & 0xff)}.${(ipAddress >> 24 & 0xff)}` console.log(ssid, ip, mac) return { ssid, ip, mac } }, getWifiList() { const resultList = this.wifiManager.getScanResults(); const len = resultList.size(); this.wifiList = []; for (let i = 0; i < len; i++) { const oneWiFi = { sid: resultList.get(i).plusGetAttribute('SSID'), bssid: resultList.get(i).plusGetAttribute('BSSID'), }; this.wifiList.push(oneWiFi); } console.log(this.wifiList); }, // 连接 WiFi connectWifi(SSID, pwd) { // 获取当前连接的WiFi信息 // console.log("connectWifi", plus); // plus.wifi.connect({ // SSID: SSID, // password: pwd // }, function() { // console.log('连接成功'); // uni.showToast({ // title: '连接成功', // icon: 'success' // }); // }, function(e) { // console.log('连接失败:', e); // uni.showToast({ // title: '连接失败', // icon: 'none' // }); // }); // return let BSSID = "" console.log("connectWifi", SSID, BSSID, pwd); const wifiConfig = this.createWifiConfig(SSID, pwd, 'wpa', BSSID); if (wifiConfig == null) { console.log("wifiConfig is null!"); return; } console.log("createWifiConfig"); const tempConfig = this.isExsitsAndroid(SSID); console.log("isExsitsAndroid"); if (tempConfig != null) { this.wifiManager.removeNetwork(tempConfig.networkId); } console.log("addNetwork"); const netID = this.wifiManager.addNetwork(wifiConfig); const enabled = this.wifiManager.enableNetwork(netID, true); console.log("enableNetwork status enable=" + enabled); const connected = this.wifiManager.reconnect(); console.log("enableNetwork connected=" + connected); }, // 创建新的 WiFi 信息 createWifiConfig(SSID, Password, Type, BSSID) { const WifiConfiguration = this.WifiConfiguration; let config = new WifiConfiguration(); console.log("createWifiConfig config", WifiConfiguration); config.allowedAuthAlgorithms.clear(); console.log("createWifiConfig allowedAuthAlgorithms"); config.allowedGroupCiphers.clear(); console.log("createWifiConfig allowedGroupCiphers"); config.allowedKeyManagement.clear(); console.log("createWifiConfig allowedKeyManagement"); config.allowedPairwiseCiphers.clear(); console.log("createWifiConfig allowedPairwiseCiphers"); config.allowedProtocols.clear(); console.log("createWifiConfig allowedProtocols"); config.SSID = '"' + SSID + '"'; console.log("createWifiConfig2", config); if (Type === "nopass") { config.preSharedKey = ""; config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE); config.wepTxKeyIndex = 0; } if (Type === "wep") { if (Password !== "") { if (this.isHexWepKey(Password)) { config.preSharedKey = Password; } else { config.preSharedKey = "\"" + Password + "\""; } } config.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN); config.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.SHARED); config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE); config.wepTxKeyIndex = 0; } if (Type === "wpa") { console.log("createWifiConfig3", Type); config.preSharedKey = "\"" + Password + "\""; config.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN); config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP); config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK); config.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP); config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP); config.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP); config.status = WifiConfiguration.Status.ENABLED; } console.log("createWifiConfig end", config); return config; }, // 判断是否是十六进制的 WEP 密钥 isHexWepKey(key) { const hexPattern = /^([0-9a-fA-F]{2})+$/; return hexPattern.test(key); }, // 查看以前是否配置过这个网络 isExsitsAndroid(sSID) { const existingConfigs = this.wifiManager.getConfiguredNetworks(); if (existingConfigs.size() != 0) { for (let i = 0; i < existingConfigs.size(); i++) { if (existingConfigs.get(i).SSID === ('"' + sSID + '"')) { console.log("该指定的 ssid 存在于配置中:" + sSID); return existingConfigs.get(i); } } } console.log("该 ssid 没有配置过"); return null; }, }