我需要检测用户何时移至 3g 网络或 2G 网络或处于无服务区。是否有标准的android广播意图?
目前我在服务中每分钟轮询以下代码。
TelephonyManager tm=(TelephonyManager) getSystemService(TELEPHONY_SERVICE); if(tm.getNetworkType()==TelephonyManager.NETWORK_TYPE_EDGE){ }
但这不是正确的方法,并且可能会饿死。如果它仅由侦听器或广播意图触发会更好。
我需要检测用户何时移至 3g 网络或 2G 网络或处于无服务区。是否有标准的android广播意图?
目前我在服务中每分钟轮询以下代码。
TelephonyManager tm=(TelephonyManager) getSystemService(TELEPHONY_SERVICE); if(tm.getNetworkType()==TelephonyManager.NETWORK_TYPE_EDGE){ }
但这不是正确的方法,并且可能会饿死。如果它仅由侦听器或广播意图触发会更好。
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”中使用实际字符串。还要检查这个文档