XamarinForms ネットワークに接続されているかどうかの確認方法

今回は、XamarinFormsでネットワークに接続されているかどうかの確認する方法についてです。

Xamarin.Essentialsを使う非常に簡単に実装できます。

プロジェクトにXamarin.Essentialsが入っていない場合、nugetからパッケージの追加をしておいてください。

1.Androidで使用する場合、Androidプロジェクト内のPropertiesフォルダー配下のAssemblyInfo.csに以下を追加 

[assembly: UsesPermission(Android.Manifest.Permission.AccessNetworkState)]

2.AndroidManifest.xml内、マニフェストノード内に以下を追加

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

3.ネットワークの状態をチェックしたい処理のあるファイルにEssentialsへの参照追加

using Xamarin.Essentials; 

4.ネットワークの状態をチェックする処理を追加 

var current = Connectivity.NetworkAccess;
if (current == NetworkAccess.Internet) {
    // ネット接続済み
}

ネットワークアクセスが変更された際、以下のようにしてイベントを受け取ることが可能です。

public Test() {
    Connectivity.ConnectivityChanged += OnConnectivityChanged;
}

void OnConnectivityChanged(object sender, ConnectivityChangedEventArgs e) {
    var access = e.NetworkAccess;
    var profiles = e.ConnectionProfiles;
}
タイトルとURLをコピーしました