Subscribe to user online status
Use subscribeUsersOnlineStatus() to subscribe to online status for specified users.
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
| Field | Description |
|---|---|
userID | Target user ID. |
status | Online status value defined by the server contract. |
platformIDs | Platforms 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.
Was this page helpful?