/*
仅支持android
*/
window.WIFI = function() {
this.init();
}
/**
-
初始化
*/
WIFI.prototype.init = function() {
var Context = plus.android.importClass("android.content.Context");
plus.android.importClass("android.net.wifi.WifiManager");
plus.android.importClass("java.util.List");
plus.android.importClass("java.util.ArrayList");
plus.android.importClass("android.net.wifi.ScanResult");
plus.android.importClass("android.net.wifi.WifiInfo");
plus.android.importClass("java.util.BitSet");this.WifiConfiguration = plus.android.importClass("android.net.wifi.WifiConfiguration");
this.wifiManager = plus.android.runtimeMainActivity().getSystemService(Context.WIFI_SERVICE);
}
/**
- 获取wifi列表
*/
WIFI.prototype.getAllList = function() {
return this.wifis = this.wifiManager.getScanResults();
}
/**
- 校验ssid 返回的是有此ssid的wifi个数
-
@param {Object} ssid wifi名
*/
WIFI.prototype.checkSsid = function(ssid) {
var list = this.wifiManager.getScanResults();
var len = list.size();
var num = 0;
for(var i = 0; i < len; i++) {
var tmp = list.get(i);if(tmp.plusGetAttribute('SSID') == ssid) { console.log('checkSsid === ' + i + '>>' + tmp.plusGetAttribute('SSID')) num++; }
}
return num;
}
/**
- 移除已经存在的ssid
- @param {Object} ssid wifi名
*/
WIFI.prototype.removeExsits = function(ssid) {
var list = this.wifiManager.getConfiguredNetworks(); //获取到已经配置过的wifi列表
var len = list.size();
var wifiInfo = this.getNow();
var tSsid = '"' + ssid + '"';
for(var i = 0; i < len; i++) {
var tmp = list.get(i);
var tmpSsid = tmp.plusGetAttribute('SSID');
console.log('removeExsits===>' + tmpSsid);
if(tmpSsid == tSsid) {
console.log('removeExsits===>' + tmpSsid);
this.disConnect(wifiInfo.getNetworkId());
this.wifiManager.removeNetwork(tmp.plusGetAttribute('networkId'));
}
}
}
/**
- 连接已有的wifi 会自动校验
- @param {Object} netWorkId wifi的id
*/
WIFI.prototype.connectOld = function(netWorkId) {
var now = this.getNow();
if(now.getNetworkId() != netWorkId) { //当前连接的不是将要连接的
this.wifiManager.enableNetwork(netWorkId, true);
}
}
/**
- 取消连接
- @param {Object} netWorkId wifi的id
*/
WIFI.prototype.disConnect = function(netWorkId) {
var now = this.getNow();
if(now.getNetworkId() == netWorkId) { //当前连接的是需要取消的 则取消
this.wifiManager.disableNetwork(netWorkId);
this.wifiManager.disconnect();
}
}
/**
- 获取当前连接的wifi
*/
WIFI.prototype.getNow = function() {
return this.wifiManager.getConnectionInfo();
}
/** -
*/
WIFI.prototype.getWifiState = function() {
return this.wifiManager.getWifiState();
}
/**
- 添加新的wifi并连接
- @param {Object} ssid wifi名
-
@param {Object} pwd 密码
*/
WIFI.prototype.connectNew = function(ssid, pwd) {
var WifiConfiguration = this.WifiConfiguration;
var wcf = new WifiConfiguration();wcf.plusGetAttribute('allowedAuthAlgorithms').set(WifiConfiguration.AuthAlgorithm.OPEN);
wcf.plusGetAttribute('allowedGroupCiphers').set(WifiConfiguration.GroupCipher.TKIP);
wcf.plusGetAttribute('allowedKeyManagement').set(WifiConfiguration.KeyMgmt.WPA_PSK);
wcf.plusGetAttribute('allowedPairwiseCiphers').set(WifiConfiguration.PairwiseCipher.TKIP);
wcf.plusGetAttribute('allowedGroupCiphers').set(WifiConfiguration.GroupCipher.CCMP);
wcf.plusGetAttribute('allowedPairwiseCiphers').set(WifiConfiguration.PairwiseCipher.CCMP);wcf.plusSetAttribute('status', WifiConfiguration.Status.ENABLED);
wcf.plusSetAttribute('SSID', '"' + ssid + '"');
wcf.plusSetAttribute('preSharedKey', '"' + pwd + '"');
wcf.plusSetAttribute('hiddenSSID', true);var wcgID = this.wifiManager.addNetwork(wcf);
var b = this.wifiManager.enableNetwork(wcgID, true);
}
/**
- 改变连接的wifi
- @param {Object} index wifi列表的索引
*/
WIFI.prototype.change = function(index) {
// 索引大于配置好的网络索引返回
if(index > this.wifis.size()) {
return;
}
// 连接配置好的指定ID的网络
this.wifiManager.enableNetwork(this.wifis.get(index).plusGetAttribute('networkId'), true);
}
/**
- 获取wifi是否打开
*/
WIFI.prototype.isWifiEnabled = function() {
return this.wifiManager.isWifiEnabled();
}
/**
- 打开wifi
*/
WIFI.prototype.open = function() {
console.log('open函数已执行');
this.wifiManager.setWifiEnabled(true);
}
/**
- 关闭wifi
*/
WIFI.prototype.close = function() {
this.wifiManager.setWifiEnabled(false);
}
/**
- 兼容版的wifi设置 只提供跳转wifi设置界面
*/
window.C_WIFI = function() {
this.main = plus.android.runtimeMainActivity();
var Intent = plus.android.importClass("android.content.Intent");
var Settings = plus.android.importClass('android.provider.Settings');
this.wifiIntent = new Intent(Settings.ACTION_SETTINGS);
}
/** - 跳转wifi界面
*/
C_WIFI.prototype.goWifi = function() {
this.main.startActivity(this.wifiIntent);
}
13 个评论
要回复文章请先登录或注册
t***@qq.com
7***@qq.com
zdlllll (作者)