具有20个扫描目的的Wifi扫描仪

时间:2014-06-04 05:16:48

标签: java android class android-wifi

我正在尝试构建一个类数组,并且正在为对象添加一些值,但它仍然显示空指针异常。

我的代码是:

class WifiScanReceiver extends BroadcastReceiver {
          @SuppressLint("UseValueOf")
          public void onReceive(Context c, Intent intent) {

              List<ScanResult> wifilist = wifi.getScanResults();
                 info = wifi.getConnectionInfo();
                int k = wifilist.size(); 


                scan_data[] data = new scan_data[k];

             for (int i=0;i<20;i++){
                wifi.startScan();
                List<ScanResult> wifilist1 = wifi.getScanResults();

                int l = wifilist1.size();

                if (i==0){
                for (int j=0;j<l;j++){
                    data[j].ssid = wifilist1.get(j).SSID.toString();
                    data[j].bssid = wifilist1.get(j).BSSID.toString();
                    data[j].lvl = wifilist1.get(j).level;
                    data[j].count++;
                }

如果你能告诉我为什么它在

显示空指针异常
data[j].ssid = wifilist1.get(j).SSID.toString();

1 个答案:

答案 0 :(得分:1)

问题是你的scan_Data数组没有用对象初始化。

scan_data[] data = new scan_data[k];

这只是初始化数组而不是在其中放置对象。你必须明确地做 所以在你的for循环中。创建scan_data对象并将所有值放入其中,然后将其放在data [j]。

         for (int j=0;j<l;j++){
                scan_data sData = new scan_data();
  //            set all desired values in sData from ScanData
                data[j] = sData;
            }

希望这有帮助。