浏览 SDKs · Android
SDKsAndroid

订阅用户在线状态

使用 subscribeUsersOnlineStatus() 订阅指定用户的在线状态。

复制
List<String> userIDs = Arrays.asList("user_a", "user_b");

OpenIMClient.getInstance().userInfoManager.subscribeUsersOnlineStatus(
    new OnBase<List<UsersOnlineStatus>>() {
        @Override
        public void onSuccess(List<UsersOnlineStatus> states) {
            // 使用 states 显示在线状态
        }

        @Override
        public void onError(int code, String error) {
            // 处理错误
        }
    },
    userIDs
);

调用前应去除空值和重复 ID,并只订阅当前业务需要展示的用户。成功 callback 返回初始 List<UsersOnlineStatus>,每项包含 userIDstatusplatformIDs

状态字段

字段说明
userID目标用户 ID。
status在线状态值,具体枚举含义以服务端契约为准。
platformIDs当前在线的平台 ID 列表。

用户在线状态变化时,可通过 OnUserListener 接收 onUserStatusChanged

@Override
public void onUserStatusChanged(UsersOnlineStatus status) {
    // 处理在线状态变化
}

订阅操作只建立或更新订阅集合。用户不再需要某个用户的在线状态时,通过取消订阅用户状态取消订阅。