本来今天公差还是没什么事做,就打算来做自己的MSN,可是不知道台州移动里做了什么设置,用微软的MSN可以登录,用我自己的MSN就是登录不了(而且QQ也登录不了,想聊天也不行啊),昨天在旅馆里还可以用自己的MSN呢.所以,就做不了MSN了,随便玩点什么吧.
昨天在旅馆里,按照前几天找的方法,做好了好友在线列表的获取工作.不过奇怪的是,在登录完成后,就是不能正确得到好友是否在线,准确的说是根本得不到好友是否在线的信息,取的列表里都是离线,实际上是有好友在线的.然后在其它消息事件里用同样的代码(我已经做成了一个函数)就可以得到正确的好友在线名单,不过还是有些好友在线,却没办法得到.这个好友是一个机器人,是小I机器人提供的功能,用我自己的MSN号绑定自己的博客的MSN.就是得不到这个MSN在线情况,可是却能得到小I机器的在线情况.看来,还有很多东西要修改和优化了.
好了,看看我获取好友列表及在线情况的代码吧:
一: 在class MSNAdapter extends MsnAdapter里面自定义了一个专门显示好友到列表的函数:
/**
* 显示好友列表
* 自定义函数
*/
public void showFriends() {
BuddyList bl = myMsn.getBuddyGroup().getForwardList();//得到好友列表
String loginNames ="";
clearFriendsList();//我自己的函数,用来清空list列表框
for (Iterator i = bl.iterator(); i.hasNext();) {
MsnFriend friend = (MsnFriend) i.next();
loginNames = friend.getLoginName();//得到好友的email名字
if ( friend.getStatus().equals(UserStatus.OFFLINE))//如果这个好友不在线
loginNames=loginNames+"<离线>";
if ( friend.getStatus().equals(UserStatus.ONLINE))//如果这个好友在线
loginNames=loginNames+"<当前在线>";
addFriendToList(loginNames);//我自己的函数,用来将这loginNames这个好友加到列表上
}
}
是不是方便多了.MSNM-LIB里没有直接相关的函数可以直接得到好友列表的,所以,只能这样写了.最后,在你要刷新好友列表的消息事件里,使用showFriends() 这个函数就可以了
想了解更多关于MSNM-LIB获取好友列表的资料,请参考我以前的文章:JMSN-MSNM-LIB如何获得好友列表,主动向好友发送消息的方法http://www.busfly.cn/post/JMSN-MSNM-LIB-friends.html
Tags: MSN QQ 机器人 |
原创文章如转载,请注明:转载自:巴士飞扬-技术BLOG : http://www.busfly.net/
本文链接地址:http://www.busfly.net/post/java-msn-getfriends.html
如果你喜欢本文,请顶一下,支持我,你的支持是我继续发好文章的最大动力。谢谢。
好东西需要分享,快把本文发给你的朋友吧~!~