首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >InetAddress.getLocalHost()总是崩溃

InetAddress.getLocalHost()总是崩溃
EN

Stack Overflow用户
提问于 2014-03-20 14:52:48
回答 1查看 1.3K关注 0票数 1

我正在开发一个安卓应用程序,我想让它显示网络上所有的IP地址,我已经在一个java应用程序中使用过它,它工作得很好,但是当我在一个安卓应用程序中使用它时,当它到达InetAddress.getLocalHost()时,它会崩溃,这在安卓应用程序上可以工作吗,或者有其他方法可以做到吗?

代码

代码语言:javascript
复制
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();
    }
EN

回答 1

Stack Overflow用户

发布于 2015-08-25 22:40:04

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

代码语言:javascript
复制
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);

将此命令...and到您的AndroidManifest文件:

代码语言:javascript
复制
<uses-permission android:name="android.permission.INTERNET" >
</uses-permission>

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

有关StrictMode的更多详细信息,请参阅Android Docs

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22525561

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档