当移动数据打开时,无法ping启动LocalOnlyHotSpot的设备



我正在使用wifiManager.startLocalOnlyHotspot启动一个没有互联网接入的热点,以便连接设备可以使用套接字将文件发送到此设备。一切正常,但当正在ping的同一设备的移动数据打开时,我无法ping连接的wifi热点设备。当我禁用移动数据时,我可以ping到我从发布该实用程序方法的实用程序类中获得的服务器IP。有人能向我解释一下我缺少的概念吗?

public static String getHotspotIpAddress(Context context) {
WifiManager wifimanager = (WifiManager) context.getApplicationContext().getSystemService(WIFI_SERVICE);
DhcpInfo dhcpInfo = wifimanager == null ? null : wifimanager.getDhcpInfo();
if (dhcpInfo != null) {
int address = dhcpInfo.serverAddress;
return ((address & 0xFF)
+ "." + ((address >> 8) & 0xFF)
+ "." + ((address >> 16) & 0xFF)
+ "." + ((address >> 24) & 0xFF));
}
return "";
}

您可以尝试为连接的wifi热点设置默认网络,以便所有未来的套接字都将仅使用此wifi网络创建。

val request = NetworkRequest.Builder()
request.addTransportType(NetworkCapabilities.TRANSPORT_WIFI)
connectivityManager.registerNetworkCallback(request.build(), object : NetworkCallback() {   
override fun onAvailable(network: Network) {
currentNetwork = network
val success = ConnectivityManager.setProcessDefaultNetwork(network)
}
})

相关内容

  • 没有找到相关文章

最新更新