Wifi의 ap중 특정 ap가
disconnected에서 connected되었을 경우
broadcast event를 받아서 해당 ap name을 parsing하려고 하는데요.
인터넷 검색 결과 아래와 같은 두가지 방식이 있는거 같은데요.
혹시 아래 방식말고 가능한 방식이 있는지요?
또한 아래 방식으로만 제가 위에 설명한 내용을 구현할 수 있는건가요?
<코드 내 구현>
http://thiranjith.com/2011/03/31/how-to-monitor-network-connectivity-in-android/
<Manifest 내>
제가 어제 시도했던 코드는 아래와 같습니다.
저 상태에서 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");




receiver 에 intent-filter 로
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
이거는 왜 넣으셨어요?;
그리고 리시버 등록방법을 두가지를 모두 사용하고 계신데. (by xml / by code)
둘중 하나만 하셔야는거 아닌가요?