gpt4 book ai didi

android - InetAddress.getLocalHost() 总是崩溃

转载 作者:行者123 更新时间:2023-11-29 21:11:50 25 4
gpt4 key购买 nike

我正在开发一个 android 应用程序,我希望它显示网络上的所有 IP 地址,我已经在运行良好的 java 应用程序中使用了它,但是当我在 android 应用程序中使用它时,它在到达时崩溃了InetAddress.getLocalHost(),这可以在 Android 应用程序上运行还是有其他方法可以实现?

代码

InetAddress localhost = null;

try {

localhost = InetAddress.getLocalHost(); // it crashes here
System.out.println("after");
} catch (UnknownHostException e1) {
// TODO Auto-generated catch block
System.out.println("the application stoped here");
e1.printStackTrace();
}
System.out.println("3");
// this code assumes IPv4 is used
byte[] ip = localhost.getAddress();

for (int i = 0; i <= 254; i++) {
ip[3] = (byte) i;

InetAddress address = null;
try {
address = InetAddress.getByAddress(ip);
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
PingThread p = new PingThread(address);
p.start();
}

最佳答案

您可以通过在 try/catch 之前将此添加到您的代码中来解决此问题:

StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);

...并将此添加到您的 AndroidManifest 文件中:

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

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

引用Android Docs有关 StrictMode 的更多详细信息。

关于android - InetAddress.getLocalHost() 总是崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22525561/

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