老醒
老醒
  • 发布:2016-06-12 13:11
  • 更新:2016-06-12 13:11
  • 阅读:2447

切换手机wifi增加监听时总是报异常

分类:Native.js

异常信息:
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");  
}
2016-06-12 13:11 负责人:无 分享
已邀请:

该问题目前已经被锁定, 无法添加新回复