2012-09-01 26 views
0

我需要检测用户何时移动到3G网络或2G网络或处于无服务区域。有没有一个标准的Android广播意图呢?移动网络变化的广播意图

当前即时轮询下面的代码服务中的每一分钟。

TelephonyManager tm =(TelephonyManager) getSystemService(TELEPHONY_SERVICE); 如果(tm.getNetworkType()== TelephonyManager.NETWORK_TYPE_EDGE){}

但是,这不是一个正确的方式,并可以bttery饿了。如果只有听众或brodcast意图触发它会更好。

回答

0

你需要注册意向ConnectivityManager.CONNECTIVITY_ACTION在OnRecieve你可以这样做。

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