デバイスが切断されたネットワークを取得する必要があります。
今私は使用します:
NetworkInfo ni =intent.getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO);
そしてチェック:
ni.isConnected()
これが false を返す場合 ni - デバイスが切断されたネットワークです。
ただし、API 14 では非推奨ですConnectivityManager.EXTRA_NETWORK_INFO
。GoogleはgetActiveNetworkInfo() を使用してネットワーク情報を取得すると述べています。ただし、 getActiveNetworkInfo() は常に、デバイスが現在接続されているネットワークを返します ( true を返す必要があります)。isConnected()
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 を使用して、切断されたネットワークを取得する方法は?