/// <summary> /// 获取在线好友数据 /// </summary> public void getOnlineFriendInfos() { users.Clear(); InitUserPanl(); UserInfo selfUserItem = new UserInfo(); selfUserItem.Id = m_UserId; selfUserItem.Name = m_UserName; byte[] ipByte = new byte[100]; AnyChatCoreSDK.QueryUserState(selfUserItem.Id, AnyChatCoreSDK.BRAC_USERSTATE_INTERNETIP, ref ipByte[0], 20); selfUserItem.Ip = byteToString(ipByte); AddUser(selfUserItem); int num = 0; AnyChatCoreSDK.GetUserFriends(null, ref num); int[] friendIds = new int[num]; AnyChatCoreSDK.GetUserFriends(friendIds, ref num); for (int i = 0; i < friendIds.Length; i++) { int onlineStatus = 0; int friendId = friendIds[i]; AnyChatCoreSDK.GetFriendStatus(friendId, ref onlineStatus); Log.SetLog("GetFriendStatus: " + "用户id:" + friendId + "在线状态:" + onlineStatus); if (onlineStatus == USER_OFFLINE) { continue; } UserInfo userItem = new UserInfo(); int lenth = 30; userItem.Id = friendId; byte[] userNameByte = new byte[255]; AnyChatCoreSDK.GetUserInfo(friendId, USERDATA_USERNAME, ref userNameByte[0], lenth); string userName = byteToString(userNameByte); userItem.Name = userName; byte[] userAddressIPByte = new byte[100]; AnyChatCoreSDK.GetUserInfo(friendId, USERDATA_USERADRESSIP, ref userAddressIPByte[0], lenth); string userIp = byteToString(userAddressIPByte); userItem.Ip = userIp; bool ishave = false; foreach (UserInfo u in users) { if (u.Id == userItem.Id) { ishave = true; break; } } if (!ishave) { users.Add(userItem); } AddUser(userItem); } }