[Xamarin] ネットワーク状態確認を Connectivity Plugin から Xamarin.Essentials に移行してみた

Xamarin製アプリでネットワーク状態を確認する方法について、「ConnectivityPlugin」から「Xamarin.Essentials」に移行してみました。
2020.11.16

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Xamarin製アプリでネットワーク状態を確認するとき、下記のライブラリにお世話になっています。

  • https://github.com/jamesmontemagno/ConnectivityPlugin

このネットワーク状態確認の機能をXamarin.Essentialsに移行してみました。

Xamarin.EssentialsのConnectivityに移行する

既存プロジェクトにXamarin.Essentialsを導入(更新)する

Xamarin.Essentialsを導入します。

Xamarin.Essentialsを導入する

コードを修正する

変更前のコード

Xam.Plugin.Connectivityを使用しているコード例です。

using Plugin.Connectivity;

namespace Sample.Models
{
    public class Sample
    {
        public Sample()
        {
            if (CrossConnectivity.Current.IsConnected)
            {
                // ネットワーク接続: OK
            }
            else
            {
                // ネットワーク接続: NG
            }
        }
    }
}

変更後のコード

Xamarin.Essentialsを使用するように変更したコードです。NetworkAccess.Internet以外の値や他のメソッド等については、ドキュメントを参照してください。

using Plugin.Connectivity;

namespace Sample.Models
{
    public class Sample
    {
        public Sample()
        {
            if (Connectivity.NetworkAccess == NetworkAccess.Internet)
            {
                // ネットワーク接続: OK
            }
            else
            {
                // ネットワーク接続: NG
            }
        }
    }
}

なお、上記はインターネットにアクセスしているかを判定していますが、保証はされていません(Wi-Fi接続されているが、ルーターから先がインターネット接続されていない場合など)。

ConnectivityPluginを削除

最後に今まで使っていたConnectivityPluginを削除します。ありがとうございました!

ConnectivityPluginをアンインストールする

参考