HereLink Android app - access to MavLink

Can you share a block of code that is capable of sending and receiving packets?

I’ve developed the following (which is not working):

For Sending data:

public void write(final CallbackContext callbackContext, CordovaArgs args, DatagramSocket dsSend) {
    try {
        JSONArray objectToTransform = args.getJSONObject(0).getJSONObject("mavlinkmessage").getJSONArray("data");
        byte[] mavlinkMessage = new byte[objectToTransform.length()];
        for (int i = 0; i < objectToTransform.length(); i++) {
            mavlinkMessage[i]=(byte)(((int)objectToTransform.get(i)));
        }
        DatagramPacket dp = new DatagramPacket(mavlinkMessage, mavlinkMessage.length, InetAddress.getLocalHost(), 14551);
        dsSend.send(dp);
        PluginResult dataResult = new PluginResult(PluginResult.Status.OK, dp.getData());
        callbackContext.sendPluginResult(dataResult);
    } catch (IOException | JSONException e) {
        e.printStackTrace();
    }
}

Receiving data (run on a separated Cordova Thread)

public void bind(final CallbackContext callbackContext, DatagramSocket ds, DatagramSocket dsSend) {
    byte[] lMsg = new byte[1500];
    try {
        DatagramPacket dp = new DatagramPacket(lMsg, lMsg.length);
        byte[] probe = new byte[16];
        DatagramPacket outListen = new DatagramPacket(probe, probe.length,  InetAddress.getLocalHost(), 14552);
        ds.send(outListen);
        DatagramPacket outWrite = new DatagramPacket(probe, probe.length,  InetAddress.getLocalHost(), 14551);
        dsSend.send(outWrite);
        while (!ds.isClosed()) {
            ds.receive(dp);
            PluginResult dataResult = new PluginResult(PluginResult.Status.OK, dp.getData());
            dataResult.setKeepCallback(true);
            callbackContext.sendPluginResult(dataResult);
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
}

But I’m only capable to receiving data, not sending.