【发布时间】:2021-02-06 07:32:03
【问题描述】:
我的命令在较低版本的 Android 上可以正常工作,但是由于 WiFi Manager 在 Android 10 及更高版本中更改了配置命令,我的命令没有响应并出现错误,请帮助我!
connectivityManager Android 10:
WifiNetworkSuggestion guestUsers = new WifiNetworkSuggestion.Builder()
.SetSsid("########")
.SetWpa2Passphrase("#######")
.Build();
var suggestions = new[] { guestUsers };
var status = wifiManager.AddNetworkSuggestions(suggestions);
var specifier = new WifiNetworkSpecifier.Builder()
.SetSsid("##########")
.SetWpa2Passphrase("###########")
.Build();
var request = new NetworkRequest.Builder()
.AddTransportType(TransportType.Wifi) // we want WiFi
.RemoveCapability(NetCapability.Internet) // Internet not required
.SetNetworkSpecifier(specifier) // we want _our_ network
.Build();
var connectivityManager = Android.App.Application.Context.GetSystemService(Context.ConnectivityService) as ConnectivityManager;
var callback = new NetworkCallback
{
NetworkAvailable = network =>
{
re = true;
}
};
connectivityManager.RequestNetwork(request, callback);
UdpClient 默认:
using (var client = new UdpClient())
{
IPEndPoint ep = new IPEndPoint(IPAddress.Parse(ipAddress), sendPort);
client.Connect(ep);
client.Send(test, test.Length);
}
错误捕获:
{System.Net.Sockets.SocketException (0x80004005):网络不可达 在 System.Net.Sockets.Socket.Connect (System.Net.EndPoint remoteEP) [0x000b0] 在 /Users/builder/jenkins/workspace/archive-mono/2020-02/android/release/mcs/class/System/System .Net.Sockets/Socket.cs:892 在 System.Net.Sockets.UdpClient.Connect (System.Net.IPEndPoint 端点) [0x00033] 在 /Users/builder/jenkins/workspace/archive-mono/2020-02/android/release/mcs/class/referencesource/System /net/System/Net/Sockets/UDPClient.cs:477 在 SmartCube.DeviceFolder.Connection.SocketUdp () [0x00071] in }
注意:
再次提醒大家,该命令适用于Android 10及以下,没有问题,由于Android 10及以上的Wi-Fi Manager更新,它不起作用。
【问题讨论】:
-
不幸的是。我的问题没有解决
-
@Amiroid 嗨,你看一下这个讨论:stackoverflow.com/questions/58769623/… 吗?
-
Junior Jiang - MSFT TNK 寻求帮助。但他无法帮助我
标签: sockets xamarin.forms wifimanager udpclient