2012. 12. 7. 16:55

예전에 네이버 API 를 이용해 스터디용 영화검색 app 만들었는데, 망연결 상태도 확인안하고 무조건 server에 요청해서

서버에 응답이 없음이라는 결과를 얻기까지 시간이 많이 걸렸었다.

이제는 요청전에 네트워크 상태를 확인해보자.

ConnectivityManager connectManager = (ConnectivityManager) getSystemService(this.CONNECTIVITY_SERVICE);

boolean isMobileOn = connectManager .getNetworkInfo(ConnectivityManager.TYPE_MOBILE).isConnectedOrConnecting();

boolean isWifiOn = connectManager .getNetworkInfo(ConnectivityManager.TYPE_WIFI).isConnectedOrConnecting();

 

AndroidManifest.xml 에 다음과 같이 추가한다.

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

 

실시간으로 받고 싶다면 ?

broadcast 를 만들고 intenr-filter에 해당 코드를 넣어준다.

<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>

 

* 중요한 것은 네트워크 상태를 언제 확인하느냐가 중요하다. server 와 통신이 잦은 어플이라면

요청시에 network check 를 해서 보낼 것인지,  broadcast 로 받아 flag 값을 값을 통해 확인 할 것인지는

server 와 통신하는 양의 차이일 것이다.


 

 

Posted by hoonihoon