2012-09-01 2 views
0

사용자가 3g 네트워크 또는 2G 네트워크로 이동했거나 서비스가 제공되지 않는 지역에있을 때이를 감지해야합니다. 거기에 표준 안드로이드 방송의 의도가 있습니까?모바일 네트워크 변경을위한 브로드 캐스트의 목적

현재 서비스에서 1 분마다 다음 코드를 폴링하고 있습니다.

TelephonyManager tm = (TelephonyManager) getSystemService (TELEPHONY_SERVICE); 경우 (tm.getNetworkType() == TelephonyManager.NETWORK_TYPE_EDGE) {}

그러나 이것은 적절한 방법이 아니며, bttery 배가 될 수 있습니다. 청취자 또는 brodcast 의도에 의해서만 실행되면 더 좋을 것입니다.

답변

0

ConnectivityManager.CONNECTIVITY_ACTION에 당신이 이것을 할 수 있음을 알리기 위해 등록해야합니다.

if (intent.getAction().equals(ConnectivityManager.CONNECTIVITY_ACTION)) { 
    NetworkInfo info = intent.getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO); 
    String typeName = info.getTypeName(); 
} 

편집 : 당신은 텐트 필터 태그 "android.net.conn.CONNECTIVITY_CHANGE"의 실제 문자열을 사용합니다. 또한 이것을 확인하십시오 doc

+0

내 뜻은 매니 페스트에'ConnectivityManager.CONNECTIVITY_ACTION'을 써야한다는 뜻입니까? – arnab321

+0

의도 필터가 – nandeesh

+0

예, 그렇습니까? ''? 그래도 작동하지 않습니다. 또한,이 문서에 대한 문서가 없습니다 – arnab321

관련 문제