在Android中使用InetAddress获取我的地址

时间:2013-12-30 10:09:17

标签: java android inetaddress

我有这个JAVA代码

package com.log.app;

import java.net.InetAddress;
import java.net.UnknownHostException;

public class Adressage {

    public static String GetMyAdress() {

        InetAddress address;
        String HostIP = null;

        try {

            address = InetAddress.getLocalHost();
            HostIP = address.getHostAddress();
        } catch (UnknownHostException e) {

            e.printStackTrace();
        }
        return HostIP;
    }
}

我的Activity.java中有一个表,我将调用该类中的方法来显示我的设备的IP地址

    tr.addView(generateTextView(Adressage.GetMyAdress(), layoutParams));     

当我启动我的模拟器并转到此活动的视图时,应用程序停止并且我有此错误

  java.lang.RuntimeException: Unable to start activity ComponentInfo{com.log.app/com.log.app.SurActivity}: android.os.NetworkOnMainThreadException 

我是ANDROID的新手,它看起来像android阻止其主线程中的任何网络代码,那么这个解决方案是什么?

1 个答案:

答案 0 :(得分:0)

尝试将此添加到onCreate方法:

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

不要忘记AndroidManifest文件中的互联网权限!

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