THANKS, @Michael_Oborne!
Sending of the first packet was the trick, WTF.
Here is working code for any others:
DatagramSocket ds = new DatagramSocket();
ds.connect(InetAddress.getByName("localhost"), 14552);
byte[] probe = new byte[16];
DatagramPacket out = new DatagramPacket(probe, probe.length, InetAddress.getByName("localhost"), 14552);
if(out != null)ds.send(out);
while (!ds.isClosed()) {
ds.receive(dp);
Log.i("UDP ","Hey I got MavLink packet!");
}