gpt4 book ai didi

java - 在 Android 设备上查找 netMask

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:58:08 34 4
gpt4 key购买 nike

我必须找到有关 Android 设备所连接网络的信息。 Android 设备基本上是一台 Android TV,它具有 WiFi 和以太网连接。
我正在使用 WiFi 并获取除 netMask 之外的所有正确信息,因为它始终显示 0(零),而它应该显示 255.255.255.0

以下是我使用的代码:

wifiMgr= (WifiManager) getSystemService(Context.WIFI_SERVICE);
dhcpInfo=wifiMgr.getDhcpInfo();

vDns1="DNS 1: "+intToIp(dhcpInfo.dns1);
vDns2="DNS 2: "+intToIp(dhcpInfo.dns2);
vGateway="Default Gateway: "+intToIp(dhcpInfo.gateway);
vIpAddress="IP Address: "+intToIp(dhcpInfo.ipAddress);
vLeaseDuration="Lease Time: "+String.valueOf(dhcpInfo.leaseDuration);
vNetmask="Subnet Mask: "+intToIp(dhcpInfo.netmask);
vServerAddress="Server IP: "+intToIp(dhcpInfo.serverAddress);

intToIp(int) 的定义:

public String intToIp(int i) {

return ((i >> 24 ) & 0xFF ) + "." +
((i >> 16 ) & 0xFF) + "." +
((i >> 8 ) & 0xFF) + "." +
( i & 0xFF) ;
}

AndroidManifest.xml:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />

为什么会发生这种情况,我该如何解决?

最佳答案

an android bug .

根据错误报告,您可以使用以下解决方法(从报告中复制):

WifiManager wifiManager = (WifiManager) getActivity().getSystemService(Context.WIFI_SERVICE);
DhcpInfo dhcpInfo = wifiManager.getDhcpInfo();
try {
InetAddress inetAddress = InetAddress.getByAddress(extractBytes(dhcpInfo.ipAddress));
NetworkInterface networkInterface = NetworkInterface.getByInetAddress(inetAddress);
for (InterfaceAddress address : networkInterface.getInterfaceAddresses()) {
//short netPrefix = address.getNetworkPrefixLength();
Log.d(TAG, address.toString());
}
} catch (IOException e) {
Log.e(TAG, e.getMessage());
}

... 或完全停止使用此 API 并使用 LinkProperties API 而不是。

关于java - 在 Android 设备上查找 netMask,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40058690/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com