안녕하세요. 며칠전 처음으로 안드로이드에 발을 들여놓았습니다.
android phone dev1을 사용하여 테스트 하고 있습니다. 간단한 wifi test를 위한 프로그램인데 주위에 있는 AP의 정보들(rssi, ssid등등)을 출력해보려합니다.
다음과 같은 코드를 googling을 통해서 찾았는데 컴파일시는 에러가 없는데 실행을 하게 되면 에러로 인해서 강제 종료할수 밖에 없네요.
뭐가 문제인지 모르겠습니다. 코드에는 문제가 없는것 같은데...
혹시 main.xml file도 고쳐주어야 하나요? 단순히 아래의 코드만 WifiTester.java file에 카피해서 실행했는데, 혹시 제가 빠뜨린 부분이 있나요?
자바에도 익숙지 않고 안드로이드 개발 환경에도 익숙지 않아 뭐가 뭔지 도통모르겠네요.
develope.android.com의 예제들을 다 따라해보긴했는데 막상 필요한것들(wifimanager)을 구현하려니 도통 모르겠네요.
염치불구하고 도움부탁드립니다. 감사합니다.
 
package com.android.wifitester;

import java.util.List;

import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.net.wifi.ScanResult;
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;

public class WifiTester extends Activity {
     TextView mainText;
     WifiManager mainWifi;
     WifiReceiver receiverWifi;
     List<ScanResult> wifiList;
     StringBuilder sb = new StringBuilder();
    
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        mainText = (TextView) findViewById(R.id.mainText);
        mainWifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
      
        receiverWifi = new WifiReceiver();
        registerReceiver(receiverWifi, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
        if (!mainWifi.isWifiEnabled()) {
            mainText.setText("isWifiEnabled failed\n");
            return;
        }
        mainWifi.startScan();
          mainText.setText("\nStarting Scan...\n");
    }

     public boolean onCreateOptionsMenu(Menu menu) {
          menu.add(0, 0, 0, "Refresh");
          return super.onCreateOptionsMenu(menu);
     }

     public boolean onMenuItemSelected(int featureId, MenuItem item) {
          mainWifi.startScan();
          mainText.setText("Starting Scan");
          return super.onMenuItemSelected(featureId, item);
     }

     protected void onPause() {
          unregisterReceiver(receiverWifi);
          super.onPause();
     }

     protected void onResume() {
          registerReceiver(receiverWifi, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
          super.onResume();
     }
    
     class WifiReceiver extends BroadcastReceiver {
          public void onReceive(Context c, Intent intent) {
             
               sb = new StringBuilder();
               wifiList = mainWifi.getScanResults();
               for(int i = 0; i < wifiList.size(); i++) {
                   sb.append(new Integer(i+1).toString() + ".");
                   sb.append((wifiList.get(i)).toString());
                   sb.append("\n");
               }
               mainText.setText(sb);
          }
     }
}