我正在尝试使用Inet显示我的IP地址,但是当我这样做时应用程序崩溃了.. 我需要添加任何权限,以便不会发生这种情况吗?以下是我的代码
try {
Inet4Address ip= (Inet4Address) Inet4Address.getLocalHost();
String s=ip.toString();
TextView text= (TextView)findViewById(R.id.txt);
text.setText(s);
} catch (UnknownHostException e) {
e.printStackTrace();
}
答案 0 :(得分:0)
android不允许你直接在主线程中运行任何与网络相关的工作,所以你得到了这个例外:
android.os.NetworkOnMainThreadException
像这样运行你的代码:
Thread thread = new Thread(){
public void run(){
try {
Inet4Address ip= (Inet4Address) Inet4Address.getLocalHost();
String s=ip.toString();
TextView text= (TextView)findViewById(R.id.txt);
text.setText(s);
Log.e("my ip=> ",s+" <<");
} catch (UnknownHostException e) {
e.printStackTrace();
}
}
};
thread.start();
它只是运行你编写另一个线程......