Mvvmcross6网络状态

时间:2018-08-09 12:13:13

标签: xamarin xamarin.android mvvmcross

我正在使用Mvvmcross6在Xamarin.Android中开发一个应用程序。要检查网络状态,我目前正在使用以下代码:

这种方法正确吗? Mvvmcross6中有什么新东西吗?

public void NetworkStatus()
    {
        _state = NetworkState.Unknown;

        //Retrieve the connectivity manager service
        var connectivityManager = (ConnectivityManager)Application.Context.GetSystemService(Context.ConnectivityService);

        //Check if the network is connected or connecting.
        //This means that it will be available,
        //or become available in a few seconds. 
        var activeNetworkInfo = connectivityManager.ActiveNetworkInfo;

        if(activeNetworkInfo.IsConnectedOrConnecting)
        {
            _state = activeNetworkInfo.Type == ConnectivityType.Wifi ? NetworkState.ConnectedWifi : NetworkState.ConnectedData;
        }
        else
        {
            _state = NetworkState.Disconnected;
        }
    }

1 个答案:

答案 0 :(得分:2)

MvvmCross有一个Network Plugin,但它并不能完全满足您的需求。 MvvmCross网络插件提供了用于进行Web API调用的跨平台实现。网络插件还具有可访问性服务,该服务可用于查看是否可以成功ping主机。

James Montemagno还提供了Xamarin Connectivity Plugin。该插件与您要完成的任务更加匹配。它具有用于确定您是否已连接以及可用的连接类型的API。

最后,有一个Xamarin Essentials与Xamarin连接插件非常接近。 Xamarin Essentials就像一个厨房水槽插件库,具有跨平台的连接性支持等等。这是3个库中的最新库,并且是最新的高质量文档。

如果您只关心Android,那么您的代码就可以了。