コード例 #1
0
ファイル: Hall.cs プロジェクト: whale0060/anychat
        /// <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);
            }
        }