//NetUtils.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Android.App;
using Android.Content;
using Android.OS;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.App.Usage;
using Android.Net;
using Android.Net.Wifi;
namespace Xxxx
{
public class NetworkCallbackImpl: ConnectivityManager.NetworkCallback
{
public override void OnAvailable(Network network)
{
base.OnAvailable(network);
Console.WriteLine("OnAvailable: 网络已连接");
}
public override void OnLost(Network network)
{
base.OnLost(network);
Console.WriteLine("OnLost: 网络已断开");
}
public override void OnCapabilitiesChanged(Network network, NetworkCapabilities networkCapabilities)
{
base.OnCapabilitiesChanged(network, networkCapabilities);
if (networkCapabilities.HasCapability(NetCapability.Validated))
{
if (networkCapabilities.HasTransport(TransportType.Wifi))
{
Console.WriteLine("OnCapabilitiesChanged: 网络类型为wifi");
}
else if (networkCapabilities.HasTransport(TransportType.Cellular))
{
Console.WriteLine("OnCapabilitiesChanged: 蜂窝网络");
}
else
{
Console.WriteLine("OnCapabilitiesChanged: 其他网络");
}
}
}
}
}
3. 注册NetworkCallbackImpl
//MainActivity.cs
using Android.App;
using Android.Widget;
using Android.OS;
using System.Collections.Generic;
using Android.Content;
using Phoneword;
using Android.Net.Wifi;
using Android.Net;
namespace Xxxx
{
[Activity(Label = "Phone Word", MainLauncher = true)]
public class MainActivity : Activity
{
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
List phoneNumbers = new List();
// Set our view from the "main" layout resource
SetContentView(Resource.Layout.Main);
//注册NetworkCallbackImpl
NetworkCallbackImpl networkCallback = new NetworkCallbackImpl();
NetworkRequest.Builder builder = new NetworkRequest.Builder();
NetworkRequest request = builder.Build();
ConnectivityManager connMgr = (ConnectivityManager)Application.Context.GetSystemService(Context.ConnectivityService);
if (connMgr != null)
{
connMgr.RegisterNetworkCallback(request, networkCallback);
}
}
}
}
4. 实测结果,测试手机使用Android10



