dn小小 2014-08-05 04:02 采纳率: 0%
浏览 3843

asmack获取好友状态Type可以,Mode却在available获取为null

asmack在登陆设置Presence.Type.available、Presence.Mode.available后,Roster获得presence没有Mode数据。

    Presence presence = new Presence(Presence.Type.available, "online", 0, Presence.Mode.available);
    FlyChatManager.instance().Login(username, username.split("@")[0], presence);

下面是登陆函数

public boolean Login(String account, String password, Presence presence){
    if(account.length() < 1 || password.length() < 1){
        Log.i(TAG, "账号或密码过短!");
        return false;
    }

    XMPPConnection conn = FlyChatService.instance().getXMPPConnection();

    if(conn == null || !conn.isConnected()){
        Log.i(TAG, "连接器没初始化,或还没有和服务器连接上!");
        return false;
    }

    try {
        conn.login(account, password);
    } catch (XMPPException e) {
        e.printStackTrace();
    }

    conn.sendPacket(presence);

    return true;
}

RosterListener的监听回调函数

    @Override
public void presenceChanged(Presence presence) {
    String from = presence.getFrom();
    Log.i(TAG, "好友:" + from + "在线状态改变!");
    Presence bestPresence;

    if(nIsListenOneFriend){
        if(from.equals(nOneFriend) || from.split("/")[0].equals(nOneFriend)){
            bestPresence = nRoster.getPresence(from.split("/")[0]);
        }else{
            return;
        }
    }else{
        bestPresence = nRoster.getPresence(from);
    }
    android.os.Message msg = new android.os.Message();
    msg.what = 1;
    msg.obj = bestPresence;
    nUIHandler.sendMessage(msg);
}

通过presenceChanged函数得到的数据Log是
08-04 23:31:29.533: I/LogInActivity(2173): online0
08-04 23:31:29.533: I/LogInActivity(2173): 2222@192.168.10.251/Smack is online
08-04 23:31:29.533: I/LogInActivity(2173): mode = null

有大神出来解决一下,或者指点一下吗? 小弟先谢谢了!!

  • 写回答

1条回答 默认 最新

  • dn小小 2014-08-05 04:34
    关注

    漏了一跳LOG
    08-04 23:31:29.533: I/LogInActivity(2173):< presence id="1z929-10" to="1111@192.168.10.251/Smack" from="2222@192.168.10.251/Smack">online0

    评论

报告相同问题?

悬赏问题

  • ¥35 平滑拟合曲线该如何生成
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站