为什么在wifi直接套接字连接期间出现异常?

时间:2014-12-02 18:31:55

标签: android sockets android-wifi serversocket wifi-direct

当我在我的Android服务器设备上运行该代码时出现异常,但我不明白为什么,请你帮助我。

WifiP2pDevice peer = wifiP2pDeviceList.getDeviceList().iterator().next();
String host = peer.deviceAddress;
ServerSocket serverSocket = new ServerSocket(2009);
Socket client = serverSocket.accept(); // I got the exception here

例外: 致命异议:主要     android.os.NetworkOnMainThreadException

2 个答案:

答案 0 :(得分:0)

Android将网络调用识别为可能无响应,因此会阻止您在UI线程上执行此操作。您需要在AsyncTask或后台流程中拨打电话。见:

http://www.vogella.com/tutorials/AndroidBackgroundProcessing/article.html

错误的其他(流行)解释:

How to fix android.os.NetworkOnMainThreadException?

答案 1 :(得分:0)

那是因为在UI线程中不允许网络相关的东西但是有一个解决方法,只需在你的onCreate中添加这些行,在setContentView下面(以避免任何错误:))

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

但如果你在非UI线程上这样做,这将是一个很好的做法。