使用xamrin.from开发,判断网络状态。
方法一:在通用项目中创建接口,采用依赖注入的方式。
1、 通用项目中定义接口
/// <summary>
/// 定义一个网络工作服务接口
/// </summary>
public interface INetworkServer
{
bool IsNetWrokConnected();
bool IsWifiConnected();
bool IsMobileConnected();
}
2、在android项目中,创建对象并实现接口
[assembly:Dependency(typeof(XXXX.Droid.NetworkServer))]
namespace XXXX.Droid
{
public class NetworkServer : Interface.INetworkServer
{
public bool IsMobileConnected()
{
ConnectivityManager manager = ConnectivityManager.FromContext(MainActivity.AppContext);
NetworkInfo info = manager.GetNetworkInfo(ConnectivityType.Mobile);
if (info != null)
{
return info.IsAvailable;
}
return false;
}
public bool IsNetWrokConnected()
{
ConnectivityManager manager = ConnectivityManager.FromContext(MainActivity.AppContext);
var info = manager.ActiveNetworkInfo;
if (info == null)
{
return false;
}
return info.IsAvailable;
}
public bool IsWifiConnected()
{
ConnectivityManager manager = ConnectivityManager.FromContext(MainActivity.AppContext);
NetworkInfo info = manager.GetNetworkInfo(ConnectivityType.Wifi);
if (info != null)
{
return info.IsAvailable;
}
return false;
}
}
}
3、通用项目中使用
var networkServer = DependencyService.Get<Interface.INetworkServer>();
return networkServer.IsNetWrokConnected();
方法二:该方法最为简单,官方地址:https://docs.microsoft.com/en-us/xamarin/essentials/connectivity?tabs=android
using Xamarin.Essentials;
var current = Connectivity.NetworkAccess;
if (current == NetworkAccess.Internet)
{ // Connection to internet is available }