今回は、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;
}