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;
|
},
|
|
}
|