异常信息:
Uncaught Attempt to read from field 'java.lang.Class io.dcloud.invocation.c.b' on a null object reference;at io.dcloud.PandoraEntryActivity.registerReceiver at index.html:1
代码如下:
document.addEventListener('plusready', function() {
//console.log("所有plus api都应该在此事件发生后调用,否则会出现plus is undefined。"
window.WifiConfiguration = plus.android.importClass("android.net.wifi.WifiConfiguration");
window.WifiManager = plus.android.importClass("android.net.wifi.WifiManager");
window.Context = plus.android.importClass("android.content.Context");
window.BroadcastReceiver = plus.android.importClass("android.content.BroadcastReceiver");
window.IntentFilter = plus.android.importClass("android.content.IntentFilter");
console.log("hi:" + WifiConfiguration);
});
function changeWifi() {
var main = plus.android.runtimeMainActivity();
var bcast_reg = plus.android.implements("android.content.BroadcastReceiver", {
"onReceive": function(context, intent) {
console.log("wifi is connected");
}
});
//报错位置
main.registerReceiver(bcast_reg, new IntentFilter(WifiManager.SUPPLICANT_STATE_CHANGED_ACTION));
var wc = plus.android.newObject("android.net.wifi.WifiConfiguration");
var wifiMgr = main.getSystemService(Context.WIFI_SERVICE);
plus.android.setAttribute(wc, "SSID", "\"" + "wifi-test" + "\"");
plus.android.setAttribute(wc, "preSharedKey", "\"" + "12345678" + "\"");
plus.android.setAttribute(wc, "priority", 1);
plus.android.setAttribute(wc, "status", WifiConfiguration.Status.ENABLED);
var allowedGroupCiphers = plus.android.getAttribute(wc, "allowedGroupCiphers");
console.log("wifi" + allowedGroupCiphers);
plus.android.invoke(allowedGroupCiphers, "set", WifiConfiguration.AuthAlgorithm.OPEN);
plus.android.invoke(allowedGroupCiphers, "set", WifiConfiguration.GroupCipher.TKIP);
plus.android.invoke(allowedGroupCiphers, "set", WifiConfiguration.GroupCipher.CCMP);
var allowedKeyManagement = plus.android.getAttribute(wc, "allowedKeyManagement");
plus.android.invoke(allowedKeyManagement, "set", WifiConfiguration.KeyMgmt.WPA_PSK);
var allowedPairwiseCiphers = plus.android.getAttribute(wc, "allowedPairwiseCiphers");
plus.android.invoke(allowedPairwiseCiphers, "set", WifiConfiguration.PairwiseCipher.TKIP);
plus.android.invoke(allowedPairwiseCiphers, "set", WifiConfiguration.PairwiseCipher.CCMP);
var allowedProtocols = plus.android.getAttribute(wc, "allowedProtocols");
plus.android.invoke(allowedProtocols, "set", WifiConfiguration.Protocol.RSN);
plus.android.invoke(allowedProtocols, "set", WifiConfiguration.Protocol.WPA);
console.log("wifi2-addNetwork:" + wifiMgr.addNetwork);
var netId = wifiMgr.addNetwork(wc);
if (netId < 0) {
return;
}
console.log("wifi2-netId:" + netId);
console.log("wifi2-disconnect:" + wifiMgr.disconnect);
wifiMgr.disconnect();
console.log("wifi2-enableNetwork:" + wifiMgr.enableNetwork);
wifiMgr.enableNetwork(netId, true);
console.log("wifi2-reconnect:" + wifiMgr.reconnect);
wifiMgr.reconnect();
console.log("wifi2");
}