我需要获取断开设备连接的网络。
现在我使用:
NetworkInfo ni =intent.getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO);
并检查:
ni.isConnected()
如果这返回 false ni - 是设备断开连接的网络。
但在 API 14ConnectivityManager.EXTRA_NETWORK_INFO
中已弃用。谷歌表示使用 getActiveNetworkInfo() 获取网络信息。但是 getActiveNetworkInfo() 总是返回设备现在连接的网络(isConnected()
必须返回 true)!
如何在不使用 ConnectivityManager.EXTRA_NETWORK_INFO 的情况下获取设备断开连接的网络的网络信息?
Sertorio Noronha,当我使用 getActiveNetworkInfo() 时,我只能得到我现在连接的网络!但我需要获取与我断开连接的网络。
ConnectivityManager cm = (ConnectivityManager)
context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo n1 = cm.getActiveNetworkInfo();
Log.d("tets", String.format("%s: %s", n1.getTypeName(), n1.isConnected()));
当我从 WI-FI 断开连接并在日志中连接到 3G 时:
mobile: true
mobile: true
当我从 3G 断开连接并在日志中连接到 WI-FI 时:
WIFI: true
WIFI: true
WIFI: true
getActiveNetworkInfo 仅返回现在连接的网络,但不返回我断开连接的网络。
如果我在日志中使用不推荐使用的 intent.getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO) 我会看到:
当我从 WI-FI 断开连接并连接到 3G 时:
WIFI: false
mobile: true
当我断开 3G 并连接到 WI-FI 时:
mobile: false
WIFI: true
但我不想使用已弃用的 api。如何使用现代 api 获取我断开连接的网络?