0
Android 용 salut librari (wifip2p 라이브러리)를 사용하려고합니다.LoganSquare and Salut libraries - Android Wifip2p
모두 잘 작동하고, 장치를 검색하고, 호스트에 연결하고, 클라이언트를 연결합니다 ... 하지만 메시지를 보내야 할 때 문제가 있습니다. 내가 메시지를 보내 Salut
및 콘솔에서 그쪽으로 발발했습니다 메시지가 수신 내게 말 :
나는 건배 자습서를 따르십시오.
09-13 13:21:58.633 21798-21906/app.ingenia.marse.ingeniamarse D/Salut: Listening for service data...
09-13 13:21:58.643 21798-21986/app.ingenia.marse.ingeniamarse V/Salut: A device is sending data...
09-13 13:21:58.675 21798-21986/app.ingenia.marse.ingeniamarse D/Salut: Successfully received data.
그러나받은 메시지를 읽을 수 없습니다.
보낸 사람 기능 : 나는 데이터받은
public void sendData(){
Message myMessage = new Message();
myMessage.description = "See you on the other side!";
network.sendToAllDevices(myMessage, new SalutCallback() {
@Override
public void call() {
Log.e(TAG, "Oh no! The data failed to send.");
}
});
}
:
@Override
public void onDataReceived(Object data) {
Log.d(TAG, "Received network data.");
try
{
Message newMessage = LoganSquare.parse((Message)data, Message.class);
Log.d(TAG, newMessage.description); //See you on the other side!
//Do other stuff with data.
}
catch (IOException ex)
{
Log.e(TAG, "Failed to parse network data.");
}
}
코드 로그를 excecute하지 않는 네트워크 데이터를 받았다. 그리고 한 줄 변경해야
Message newMessage = LoganSquare.parse((Message)data, Message.class);
//to
Message newMessage = LoganSquare.parse(String.valueOf((Message)data), Message.class);
을 그리고 Message.class : message.class에서
@JsonObject
public class Message{
/*
* Annotate a field that you want sent with the @JsonField marker.
*/
@JsonField
public String description;
/*
* Note that since this field isn't annotated as a
* @JsonField, LoganSquare will ignore it when parsing
* and serializing this class.
*/
public int nonJsonField;
@OnJsonParseComplete
void onParseComplete() {
Log.d("PARSED", "onParseComplete: PARSED!!");
}
/*
* Optional callback method to do something before your
* object serializes.
*/
@OnPreJsonSerialize
void onPreSerialize() {
Log.d("SERIALIZED", "onParseComplete: SERIALIZED!!");
}
}
두 로그를하거나 그들에 따라 때문이다
나는이 사람 (WIngenia)과 정확히 똑같은 문제가 있으며 나는 당신의 대답을 이해하지 못한다. 실제로 당신의 대답은 실제 해결책이 아니다. data.isEmpty가 true를 반환하면 호스트에서 클라이언트로 정보를 전송하기 때문에 무엇을 의미하는지 알 수 없습니다. –