Rum*_*raK 1 networking android ethernet mask ip-address
在Android模拟器中,地址(eth0)是10.0.2.15/24
在支持以太网的平板电脑上,eth0有一个类似的地址:例如192.168.0.2/24
如何通过现有的Android API找到它?(现有版本 - 在Android L预览之前!).
我知道可以通过WifiManager.getDhcpInfo()来完成WiFi - 但我对以太网感兴趣- 甚至更好的通用方式.
这是一个获取掩码的方法,AKA是网络前缀长度.最小API为9,并且需要INTERNET权限.地址有一个'/'前缀,但可以通过添加.toString.substring(1)等方便地删除.
public void logLocalIpAddresses() {
Enumeration<NetworkInterface> nwis;
try {
nwis = NetworkInterface.getNetworkInterfaces();
while (nwis.hasMoreElements()) {
NetworkInterface ni = nwis.nextElement();
for (InterfaceAddress ia : ni.getInterfaceAddresses())
Log.i(TAG, String.format("%s: %s/%d",
ni.getDisplayName(), ia.getAddress(), ia.getNetworkPrefixLength()));
}
} catch (Exception e) {
e.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3182 次 |
| 最近记录: |