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