Wifi의 ap중 특정 ap가

disconnected에서 connected되었을 경우

broadcast event를 받아서 해당 ap name을 parsing하려고 하는데요.

인터넷 검색 결과 아래와 같은 두가지 방식이 있는거 같은데요.

혹시 아래 방식말고 가능한 방식이 있는지요?

또한 아래 방식으로만 제가 위에 설명한 내용을 구현할 수 있는건가요?

<코드 내 구현>

http://thiranjith.com/2011/03/31/how-to-monitor-network-connectivity-in-android/

<Manifest 내>

http://stackoverflow.com/questions/5276032/connectivity-action-intent-recieved-twice-when-wifi-connected

 

제가 어제 시도했던 코드는 아래와 같습니다.

저 상태에서 connected된 ap를 diconnected시도하면 "unable to instantiate receiver"로 앱이 죽습니다.

이거때문에 몇일동안 계속 고민하고 있습니다.

고수님들의 답변 부탁 드리겠습니다.

 

<manifest>

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="org.tacademy.listview"
      android:versionCode="1"
      android:versionName="1.0">
   

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" /> 
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".WifiListViewActivity"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <receiver android:name=".WifiReceiver">
            <intent-filter>   
               <action android:name="android.intent.action.MAIN" />            
               <category android:name="android.intent.category.LAUNCHER" />
                <action android:name="android.net.wifi.WIFI_STATE_CHANGED"/>
                <action android:name="android.net.wifi.supplicant.CONNECTION_CHANGE" />                           
            </intent-filter>
        </receiver>

    </application>
   
    <uses-sdk android:minSdkVersion="8" />

</manifest>

 

<code>

 

/* Wifi Broadcast*/
        receiverWifi = new WifiReceiver();
        registerReceiver(receiverWifi, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
        registerReceiver(receiverWifi, new IntentFilter(WifiManager.SUPPLICANT_CONNECTION_CHANGE_ACTION));
        registerReceiver(receiverWifi, new IntentFilter(WifiManager.NETWORK_STATE_CHANGED_ACTION));
       
        if (!mainWifi.isWifiEnabled()) {
            mainText.setText("isWifiEnabled failed\n");
            return;
        }
          mainWifi.startScan();
          mainText.setText("\nStarting Scan...\n");