ネットワーク接続の確認

2331 ワード

翻訳:http://www.grokkingandroid.com/android-checking-connectivity/
いつでも、アプリケーションがネットワークにアクセスする必要がある場合は、デバイスが現在ネットワークに接続されていることを事前に知っておく必要があります.Androidは、デバイスのネットワーク接続状態をよりよく取得するために、ConnectivityManagerとNetworkInfoの2つのclassを提供しています.
一般的には、アクティブな作成は必要ありません.ConnectivityManager , Context
ConnectivityManager connManager =
   (ConnectivityManager)context.
   getSystemService(Context.CONNECTIVITY_SERVICE);

ConnectivityManager自体はあまり機能しませんが、NetworkInfoオブジェクト(現在のネットワーク接続状態を取得)を取得できます.NetworkInfoオブジェクトを取得するには3つの方法がありますが、ネットワーク接続の状態をすぐに知りたい場合は、次の方法が最も効果的です.
NetworkInfo info = connManager.getActiveNetworkInfo();

または、ConnectivityManagerを使用して、システムで使用可能なNetworkInfoオブジェクトのセットを取得することもできます.各NetworkInfoは、ネットワークタイプ(e.g.WIFI)を表します.
NetworkInfo info = connManager.getAllNetworkInfo();

NetworkInfoオブジェクトを使用すると、ネットワークタイプに関するすべての情報を取得できます.ネットワークタイプが現在使用可能かどうかを検出できます.現在ネットワークに接続されている場合は、現在接続されているネットワークがそのタイプであることを取得できます.
以下に、NetworkInfoクラスの重要な方法を示します.画面には、これらのメソッドの実行結果(WIFIまたはUMTSネットワークの情報)が表示されます.
info.isAvailable()
info.isConnected()
info.isConnectedOrConnecting()
info.getState()
info.getDetailedState()
info.getTypeName()
info.getType()
info.getSubtypeName()
info.getSubtype()

NetworkInfo showing only disconnected states
检查网络连接状况_第1张图片
NetworkInfo showing an established WIFI connection
检查网络连接状况_第2张图片
NetworkInfo showing an established UMTS connection
ネットワークへの接続状態にアクセスするにはmanifestファイルで権限を明確に宣言する必要があります.
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

関連記事:
Android: Getting Notified of Connectivity Changes