 |
|
|  |
|
 |
10년 전 |
[android] 네트워크 상태가 변경 될 때 마다 실시간 확인 방법. (BroadcastReceiver 사용)
네트워크가 변경되었을 때 실시간으로 앱에서 하고 싶은 동작을 할 수 있다.
[AndroidManifest.xml]
activity와 동등한 단계에 추가.
<receiver android:name = "appNetwork">
<intent-filter>
<action android:name="android.net.conn.BACKGROUND_DATA_SETTING_CHANGED"/>
</intent-filter>
</receiver>
[appNetwork.java]
public class appNetwork extends BroadcastReceiver {
private Activity activity;
public appNetwork() {
super();
}
public appNetwork(Activity activity) {
this.activity = activity;
}
@Override
public void onReceive(Context context, Intent intent) {
String action= intent.getAction();
if (action.equals(ConnectivityManager.CONNECTIVITY_ACTION)) {
try {
ConnectivityManager connectivityManager =
(ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo();
NetworkInfo _wifi_network =
connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if(_wifi_network != null) {
// wifi, 3g 둘 중 하나라도 있을 경우
if(_wifi_network != null && activeNetInfo != null){
}
// wifi, 3g 둘 다 없을 경우
else{
}
}
} catch (Exception e) {
Log.i("ULNetworkReceiver", e.getMessage());
}
}
}
}
[java 파일]
IntentFilter filter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);
appNetwork receiver = new appNetwork(this);
registerReceiver(receiver, filter);
|
|
추천 : 454 |
추천
목록
|
|
|  |
|