1

我需要检测用户何时移至 3g 网络或 2G 网络或处于无服务区。是否有标准的android广播意图?

目前我在服务中每分钟轮询以下代码。

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

但这不是正确的方法,并且可能会饿死。如果它仅由侦听器或广播意图触发会更好。

4

1 回答 1

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”中使用实际字符串。还要检查这个文档

于 2012-09-02T00:05:57.697 回答