Sending data using alljoyn

I am sending a string after conversion to an array of bytes using alljoyn, this string contains an image (after conversion to String using Base64). it works fine, but with some images it gives the following error

08-08 18:55:21.158 20724-21095/co.coinflipsrl.infomage E/ALLJOYN﹕ 20.237 ****** ERROR ALLJOYN external ...oyn_core/src/MsgArg.cc:790 | 0x900d 08-08 18:55:21.159 20724-21095/co.coinflipsrl.infomage E/ALLJOYN_JAVA﹕ 20.238 ****** ERROR ALLJOYN_JAVA external .../jni/alljoyn_java.cc:11480 | 0x0001 08-08 18:55:21.161 20724-21095/co.coinflipsrl.infomage E/SimpleClient﹕ SimpleInterface.Ping(): org.alljoyn.bus.MarshalBusException: cannot marshal class [B into 'ay' org.alljoyn.bus.MarshalBusException: cannot marshal class [B into 'ay' at org.alljoyn.bus.MsgArg.marshal(MsgArg.java:534) at org.alljoyn.bus.MsgArg.marshal(MsgArg.java:556) at org.alljoyn.bus.ProxyBusObject.methodCall(Native Method) at org.alljoyn.bus.ProxyBusObject.access$300(ProxyBusObject.java:35) at org.alljoyn.bus.ProxyBusObject$Handler.invoke(ProxyBusObject.java:264) at java.lang.reflect.Proxy.invoke(Proxy.java:397) at $Proxy2.Ping(Unknown Source) at co.coinflipsrl.infomage.sharing.alljoynshare.ClientFragment$BusHandler.handleMessage(ClientFragment.java:292) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) at android.os.HandlerThread.run(HandlerThread.java:61) Caused by: org.alljoyn.bus.BusException: ER_BUS_BAD_VALUE at org.alljoyn.bus.MsgArg.set(Native Method) at org.alljoyn.bus.MsgArg.marshal(MsgArg.java:464) 


dispatch code:

  sendUiMessage(MESSAGE_PING, msg.obj); byte[] sentObj = (byte[]) msg.obj; Object reply = mSimpleInterface.Ping((byte[]) msg.obj); byte[] receivedObj = (byte[]) reply; if (Arrays.equals(sentObj, receivedObj)) { sendUiMessage(MESSAGE_PING_REPLY, true); } else { sendUiMessage(MESSAGE_PING_REPLY, false); } 

reception code:

  public byte[] Ping(byte[] inStr) { sendUiMessage(MESSAGE_PING, inStr); //Simply echo the ping message. sendUiMessage(MESSAGE_PING_REPLY, inStr); return inStr; } /* Helper function to send a message to the UI thread. */ private void sendUiMessage(int what, Object obj) { mHandler.sendMessage(mHandler.obtainMessage(what, obj)); } 
+4
source share
1 answer

I think your data is zero. null cannot be sent, although alljoyn

 Object reply = mSimpleInterface.Ping((byte[]) msg.obj); 
+1
source

All Articles