我正在尝试使用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();
}
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();
它只是运行您代码另一个线程...