У меня возникла следующая проблема с моим новым Samsung Galaxy S2 с Android 7.0
У меня есть приложение, которое получает данные с устройства черного ящика через сокет UDP, данные, отправленные устройством черного ящика, большиеUDP-пакеты (MTU> 1500 байт), и этот конкретный планшет (Samsung Galaxy S2) сбрасывает ответные пакеты с устройства черного ящика
. Порядок работы моего приложения следующий:
1. Установите планшет иBlackbox в том же WLan
2. Подключитесь к порту 65000 через сокет UDP (Socked фиксируется черным ящиком)
3. Отправьте пакет дейтаграммы из приложения в черный ящик с содержимым «hallo» плюс возврат каретки.
4. Устройство черного ящика отправляет мне обратно 54 КБ в виде одного пакета UDP
, чтобы принять во внимание: в качестве полезной нагрузки данных UDP (blackbox-> tablet) больше, чем у кадра Ethernet (1480 байт), тогда сеть передает пакет в виде серии из 40 кадров фрагментированного IP-протокола
Странный thДело в том, что с другими телефонами пакет udp принимается в моем приложении без каких-либо проблем, и Samsung отбрасывает пакеты.Следующий код работает и был протестирован с другими телефонами.
this.networkThreadHandler.post(new Runnable() {
@Override
public void run() {
try {
clientChannel = DatagramChannel.open();
ByteBuffer buffer = ByteBuffer.wrap(messageBytes);
InetSocketAddress serverAddress = new InetSocketAddress(address, port);
ByteBuffer outputBuffer = ByteBuffer.allocate(6000000);
//for(int i = 0; i<msgNumber; i++) {
int bytesSent = clientChannel.send(buffer, serverAddress);
Log.i(METHODTAG, "bytesSent: " + bytesSent);
buffer.clear();
clientChannel.receive(outputBuffer);
outputBuffer.flip();
int limits = outputBuffer.limit();
byte bytes[] = new byte[limits];
outputBuffer.get(bytes, 0, limits);
String response = new String(bytes);
Log.d(METHODTAG, "Server responded: " + response);
responseListener.onResponseReceived(response);
//outputBuffer.clear();
//outputBuffer = null;
} catch (Exception e) {
e.printStackTrace();
}
}
});
- Этот код корректно работает для других устройств Samsung и телефонов разных производителей и версий Android от 5.0 до 8.0 даже с другими телефонами Samsungс Android 7
Характеристики оборудования: Планшет
Модель: планшет Samsung Galaxy Tab S2, модель SM-T719N, 8 "- LTE, Quad-Core
Android: 7.0
ЯдроВерсия: 3.10.84
SE для Android Статус: принудительное выполнение
Версия Knox: 2.7.1