Несколько лет назад я написал код в Android Studio для связи через Wi-Fi со встроенными устройствами. Этот код хорошо работал на всех устройствах Android до Android 6, но на устройствах с Android 7 или более поздней версии кажется, что данные не передаются по Wi-Fi.
Я публикую упрощенную часть кода. В «onClickSend» при нажатии соответствующей кнопки приложение должно отправить 2 байта. Сокет создан в классе "ClientThread". И onClickSend, и ClientThread находятся внутри MainActivity. «ClientThread» инициализируется в «onCreate (Bundle saveInstanceState)» следующим образом
new Thread(new ClientThread()).start();
Внутри Manifest.xml Я дал следующие разрешения:
android:name="android.permission.INTERNET"
android:name="android.permission.ACCESS_NETWORK_STATE"
public void onClickSend(View view){
try {
OutputStream out = mySocket.getOutputStream();
out.write(byte1);
out.write(byte2);
out.flush();
}
catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
catch (Exception e) {
e.printStackTrace();
}
}
class ClientThread implements Runnable {
@Override
public void run() {
try {
InetAddress serverAddr = InetAddress.getByName(ip_address);
mySocket = new Socket(serverAddr, port);
} catch (UnknownHostException e) {
} catch (IOException e) {
}
}
}
Ваши комментарии могут помочь мне понять, что происходит не так. Спасибо.