Xamarin.Android で Wifi との接続状況を取得してあれこれしたいって場面があると思います。(Wifi と確実に接続してから通信をしなければいけない状況など....
Android では幾つかの方法を利用することで Android 端末の Wifi との接続状況を取得することができます。
今回は、2種類の詳しさで WIfi との接続情報を取得する方法について書いていきます。(必要以上に詳しい情報が必要な場面とそうでない場面とであるからね!
シンプル Ver
得られる結果は以下のページにリストアップされています。
https://developer.xamarin.com/api/type/Android.Net.NetworkInfo+State/
// Connectivity Mange を取得するプロパティを適当に生やす private ConnectivityManager ConnectivityManager => (ConnectivityManager)GetSystemService(ConnectivityService); // 接続状況を表示するための Label を取得 var SimpleLabel = FindViewById<TextView>(Resource.Id.SimpleNetworkLabel); // アクティブになっているネットワークを取得 var SimpleWifiState = ConnectivityManager.ActiveNetworkInfo; // 今回は、 Wifi 以外の場合は興味ないので返しておく if (SimpleWifiState.Type != ConnectivityType.Wifi) return; // 結果を見やすくするためにテキスト化して表示 SimpleLabel.Text = SimpleWifiState.GetState().ToString();
詳細 Ver
得られる結果は以下のページにリストアップされています。
SupplicantState Class (Android.Net.Wifi) | Microsoft Docs
// WifiManger を利用して取得 private WifiManager WifiManager => (WifiManager)GetSystemService(WifiService); // 接続状況を表示するための Label を取得 var detailLabel = FindViewById<TextView>(Resource.Id.DetailNetWorkStateLabel); // 結果を見やすくするためにテキスト化して表示 detailLabel.Text = WifiManager.ConnectionInfo.SupplicantState.Name();