0

このコードは、「アクティビティでブロードキャスト インテントを受信中にエラーが発生しました」というエラーを表示しています。最初の 7 つのスキャン結果のみが必要なため、ループ条件を 7 として追加しました

class WifiReceiver extends BroadcastReceiver {
    public void onReceive(Context con, Intent intent) {
        sb = new StringBuilder();
        wifiList = mainWifi.getScanResults();

        for(int i = 0; i < wifiList.size(); i++)
        {
            sb.append((wifiList.get(i)).SSID.toString());
            sb.append(' ');
            sb.append('!');
            sb.append("\n\n");
        }

        String net = sb.toString();

        if(wifiList.size() > 0)
        {


        char excl = '!';
        int excl1 = excl;
        String[] aray = null;
        for(int j = 0; j<7; j++)
        {
            int index = net.indexOf(excl1);
            String a = net.substring(0, index);
            aray[j] = a;
            String temp = net.substring(index+1);
            net = temp;

        }

        String one = aray[0];
        String two = aray[1];
        String three = aray[2];
        String four = aray[3];
        String five = aray[4];
        String six = aray[5];
        String seven = aray[7];
        tv1.setText(one);

    }
        else
        {
            tv1.setText("No Networks Detected");
        }
}
}

PS:これはテストモジュールであるため、1つのTextViewにのみ追加しました

4

1 に答える 1

0

「配列」配列が正しく初期化されていません。アクセスする前に「配列」を初期化する必要があります。

String[] aray = new String[7];

また、配列の次元の外に出ています。これ:

String seven = aray[7];

次のようにする必要があります。

String seven = aray[6];

さらに良い解決策は、ArrayList を使用することです。

ArrayList al = new ArrayList();
al.add(yourString);
于 2012-05-29T15:40:34.923 に答える