Android Connectivity Managerの詳細
2391 ワード
ConnectivityManagerクラスは、ネットワーク接続に関するステータスクエリに回答しました.また、ネットワーク接続が変化したときにアプリケーションに通知します.このクラスの一例
このクラスの主な役割は、監視ネットワーク接続(無線ネットワーク接続、GPRS、UMTS等) 放送意図送信時のネットワーク接続の変化 が「フェイルオーバ」を別のネットワークにしようとすると、ネットワークに接続すると が失われる.はAPIを提供し、アプリケーションが利用可能なネットワークの粗粒または細粒状態 を問い合わせることを可能にする.はAPIを提供し、彼らのデータトラフィックのアプリケーションの要求のために、ネットワーク を選択することを許可する.
次に、現在ネットワークが存在するか否かを判断するコードを例に挙げる(例は「第1行コード・第2版」から).
方法
注意:
getSystemServiceはAndroidの重要なAPIであり、Activityの方法であり、受信したNAMEに基づいて対応するObjectを取得し、対応するサービスオブジェクトに変換する.システムに対応するサービスについて説明します.詳細:getSystemService詳細
MainActivityファイル(外部パッケージを省略)
Context.getSystemService(Context.CONNECTIVITY_SERVICE)
は、以下の呼び出しによって得ることができる.このクラスの主な役割は、
次に、現在ネットワークが存在するか否かを判断するコードを例に挙げる(例は「第1行コード・第2版」から).
方法
getNetworkInfo(Network network)
は、特定のネットワーク接続状態に関する情報を返す.注意:
getSystemServiceはAndroidの重要なAPIであり、Activityの方法であり、受信したNAMEに基づいて対応するObjectを取得し、対応するサービスオブジェクトに変換する.システムに対応するサービスについて説明します.詳細:getSystemService詳細
MainActivityファイル(外部パッケージを省略)
public class MainActivity extends AppCompatActivity {
private IntentFilter intentFilter;
private NetworkChangeReceiver networkChangeReceiver;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
intentFilter=new IntentFilter();
intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE");
networkChangeReceiver = new NetworkChangeReceiver();
registerReceiver(networkChangeReceiver,intentFilter);
}
@Override
protected void onDestroy(){
super.onDestroy();
unregisterReceiver(networkChangeReceiver);
}
class NetworkChangeReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent){
ConnectivityManager connectivityManager=(ConnectivityManager)
getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo=connectivityManager.getActiveNetworkInfo();
if(networkInfo!=null&&networkInfo.isAvailable()){
Toast.makeText(context,"network is available",Toast.LENGTH_SHORT).show();
}
else{
Toast.makeText(context,"network is unavailable",Toast.LENGTH_SHORT).show();
}
}
}
}
また、ここでアクセスするシステムのネットワーク状態は、権限を宣言する必要があり、AndroidManifestを開く.xmlファイル、次のコードを追加します.