Browse SDKs · Android
SDKsAndroid

Subscribe to user online status

Use subscribeUsersOnlineStatus() to subscribe to online status for specified users.

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

OpenIMClient.getInstance().userInfoManager.subscribeUsersOnlineStatus(
    new OnBase<List<UsersOnlineStatus>>() {
        @Override
        public void onSuccess(List<UsersOnlineStatus> states) {
            mergeOnlineStates(states);
        }

        @Override
        public void onError(int code, String error) {
            recordStatusSubscriptionFailure(code, error);
        }
    },
    userIDs
);

Remove empty and duplicate IDs, and subscribe only to users whose status is needed. The callback returns the initial List<UsersOnlineStatus> snapshot. Each item contains userID, status, and platformIDs. Deduplicate repeated subscriptions in the application state layer.

Status fields

FieldDescription
userIDTarget user ID.
statusOnline status value defined by the server contract.
platformIDsPlatforms on which the user is online.

This page owns onUserStatusChanged. Combine it into the application's single OnUserListener and merge by userID:

@Override
public void onUserStatusChanged(UsersOnlineStatus status) {
    onlineStatusStore.put(status.getUserID(), status);
}

Subscription only creates or updates the subscription set; do not treat its callback as friend profile data. Manage the subscription set centrally when users leave the visible range or the account changes. Android does not expose a verifiable unsubscribe entry point, so this documentation does not record one.