2016-09-13 3 views
0

Я пытаюсь использовать библиотеку salut (библиотека wifip2p) для Android.Библиотеки LoganSquare и Salut - Android Wifip2p

Все работает нормально, обнаруживайте устройства, подключайте хост, подключайте клиентов ... Но когда мне нужно отправить сообщение, у меня есть проблема.

Я следую Salut учебника: 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."); 
    } 
} 

Код не Выполнение выражений журнала полученных данных по сети. И мне нужно изменить одну строку:

Message newMessage = LoganSquare.parse((Message)data, Message.class); 
//to 
Message newMessage = LoganSquare.parse(String.valueOf((Message)data), 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!!"); 
    } 

} 

Два бревна в message.class, ни они выполнили

ответ

0

Это потому, что в соответствии с документация, onDataRecieve() не выполняется как data.isEmpty() возвращает true. Проверьте, что я имею в виду от here.

+0

У меня точно такая же проблема, как у этого парня (WIngenia), и я не понимаю вашего ответа, на самом деле ваш ответ не является реальным решением. Я не знаю, что вы имеете в виду, когда data.isEmpty возвращает true, потому что я отправляю информацию с хоста клиенту. –

Смежные вопросы