Почему:
Я отправляю целевое местоположение в машину Raspberry Pi.Если местоположение отправлено правильно, пи отправляет ответ okey.
Проблема:
Приложение не может получить ответ okey.Я могу отправлять и получать пакеты с помощью raspberry pi, я проверил это.
Неполадки:
1) Нажмите кнопку, чтобы отправить некоторые данные в raspberry pi с телефона.
2) При нажатии этой кнопки запускаются 2 асинхронные задачи, 1-ая - приемник UDP с тайм-аутом 10 секунд.2-й - для отправки данных в raspberry pi.2-й работает должным образом.
Это слушатель кнопок.
btn_showCoordinates.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
try {
GeoPoint markerPoint = new GeoPoint(Double.parseDouble(mapLat.getText().toString()), Double.parseDouble(mapLon.getText().toString()));
startMarker.setPosition(markerPoint);
startMarker.setAnchor(Marker.ANCHOR_CENTER, Marker.ANCHOR_BOTTOM);
startMarker.setTitle("Target location");
map.getOverlays().add(startMarker);
map.invalidate();
getIPandPort();
tv_info.setText("Sending Target Coordinates...");
new ReceiveCommand().execute();
new SendTargetAsyncTask().execute();
} catch (Exception e) {
e.printStackTrace();
}
}
});
Это асинктическая задача, которая не работает.
public class ReceiveCommand extends AsyncTask<Void, Void, Boolean> {
@Override
protected Boolean doInBackground(Void... voids) {
byte[] lMsg = new byte[64];
DatagramPacket dp = new DatagramPacket(lMsg, lMsg.length);
try {
receivingSocket = new DatagramSocket(15000);
receivingSocket.setSoTimeout(10000);
receivingSocket.setReuseAddress(true);
receivingSocket.receive(dp);
StateResponse = new String(dp.getData());
if(!StateResponse.isEmpty())
{
tv_info.setText("Sending Target Coordinates...OK");
Log.e("UDP", "doInBackground: Yazi_degismeli");
}
Log.e("UDP", "run: paket alındı!" + StateResponse);
} catch (SocketException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return true;
}
}
Спасибо запомощь!