首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LoganSquare和Salut库- Android Wifip2p

LoganSquare和Salut库- Android Wifip2p
EN

Stack Overflow用户
提问于 2016-09-13 11:30:10
回答 1查看 372关注 0票数 0

我尝试在安卓系统中使用salut库(wifip2p库)。

一切正常工作,发现设备,连接主机,连接客户.但当我需要传达信息的时候,我就有麻烦了。

我遵循Salut教程:致敬

我发了一条消息,在控制台里说收到了这条消息。

代码语言:javascript
复制
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.

但我看不懂收到的信息。

发送者函数:

代码语言:javascript
复制
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.");
        }
    });

}

其中I接收数据

代码语言:javascript
复制
@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.");
    }
}

代码不会超出日志接收到的网络数据。我需要换一句话:

代码语言:javascript
复制
Message newMessage = LoganSquare.parse((Message)data, Message.class);
//to
 Message newMessage = LoganSquare.parse(String.valueOf((Message)data), Message.class);

Message.class

代码语言:javascript
复制
@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中的两个日志也没有执行

EN

回答 1

Stack Overflow用户

发布于 2017-04-23 10:31:37

这是因为根据文档,onDataRecieve()没有执行,因为data.isEmpty()返回true。检查一下我从这里的意思。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39468931

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档