我需要检测用户何时移动到3g网络或2G网络或处于无服务区域。是否有标准的Android广播意图?
目前我在服务中每分钟轮询一次代码。
TelephonyManager tm =(TelephonyManager) getSystemService(TELEPHONY_SERVICE); if(tm.getNetworkType()== TelephonyManager.NETWORK_TYPE_EDGE){}
但这不是一种正确的方式,可能是饥肠辘辘。如果它只是由听众或brodcast意图触发它会更好。
答案 0 :(得分:0)
您需要在OnRecieve中注册意图ConnectivityManager.CONNECTIVITY_ACTION
,您可以这样做。
if (intent.getAction().equals(ConnectivityManager.CONNECTIVITY_ACTION)) {
NetworkInfo info = intent.getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO);
String typeName = info.getTypeName();
}
编辑: 您需要在intent过滤器标记中使用实际字符串 “android.net.conn.CONNECTIVITY_CHANGE”。另请查看此doc