即时通讯
客户端 SDK
发布日志
升级指南
当前页

ZIM 升级指南

2026-07-24

本文介绍 ZIM Android 平台 SDK 版本升级时的一些说明和注意事项。

3.1.0 升级指南

注意

ZIM SDK 3.1.0 版本新增了部分接口废弃标记,请参考以下说明完成迁移。

新增废弃接口

queryGroupMessageReceiptReadMemberListqueryGroupMessageReceiptUnreadMemberList 自 3.1.0 版本起新增废弃标记,查询群消息的已读、未读(未送达)、或已送达状态的成员列表请使用 queryGroupMessageReceiptMemberList 代替。

queryGroupMessageReceiptMemberList 使用示例

参数说明:

参数说明
message需要查询的带回执的消息。
groupID对应群会话的群 ID。
count查询的人数,单次查询不超过 100。
config查询的配置项:ZIMGroupMessageReceiptMemberQueryConfig,可以配置查询起始标记 nextFlag 以及查询项(已读、未读[未送达]、已送达)。
callback查询结果的回调:ZIMGroupMessageReceiptMemberListQueriedCallback,其中 userList 为符合查询条件的群成员列表,nextFlag 为下一次查询的起始标记(当 nextFlag 为 0 时表示查询完毕)。

调用示例:

ZIMGroupMessageReceiptMemberQueryConfig config = new ZIMGroupMessageReceiptMemberQueryConfig();
config.nextFlag = 0;    // 查询的起始标记,初始填 0,后续填从 callback 里返回的 nextFlag。
config.count = 10;      // 需要查询的用户数量,单次不超过 100。

zim.queryGroupMessageReceiptMemberList(
    message, groupID, count, config,
    new ZIMGroupMessageReceiptMemberListQueriedCallback() {
        @Override
        public void onGroupMessageReceiptMemberListQueried(
            String groupID, ArrayList<ZIMGroupMemberInfo> userList,
            int nextFlag, ZIMError errorInfo) {
            if (errorInfo.code == ZIMErrorCode.SUCCESS) {
                // 查询成功,userList 为符合查询条件的群成员列表
                // nextFlag 为下一次查询的起始标记,nextFlag 为 0 时表示查询完毕
            } else {
                // 查询失败
            }
        }
    });

3.0.0 升级指南

注意

本次版本(3.0.0)移除了部分已废弃超过 1 年的接口及相关枚举值和字段,同时对部分接口新增了废弃标记。请参考以下说明完成迁移。

废弃接口删除

ZIM 初始化接口(create)

废弃的旧版 create(appID, application) 接口已被移除,请使用接受 ZIMAppConfig 参数的 create 接口代替。

ZIMAppConfig appConfig = new ZIMAppConfig();
appConfig.appID = 12345678L;
appConfig.appSign = "appSign";
ZIM zim = ZIM.create(appConfig, application);

ZIM 登录接口(login)

废弃的旧版 login(ZIMUserInfo, token, callback) 接口已被移除,请使用接受 userIDZIMLoginConfig 参数的 login 接口代替。

ZIMLoginConfig loginConfig = new ZIMLoginConfig();
loginConfig.userName = "userName";
loginConfig.token = ""; // 若使用 Token 鉴权,请填写 Token
loginConfig.isOfflineLogin = false;
zim.login("userID", loginConfig, new ZIMLoggedInCallback() {
    @Override
    public void onLoggedIn(ZIMError error) {
        // 登录结果
    }
});

ZIM 消息发送接口(sendMessage)

废弃的 sendPeerMessagesendRoomMessagesendGroupMessage 以及不含 ZIMMessageSendNotification 参数的旧版 sendMessage 接口已被移除,请统一使用带 notification 参数的 sendMessage 接口代替。

ZIMTextMessage textMessage = new ZIMTextMessage("Hello");
ZIMMessageSendConfig config = new ZIMMessageSendConfig();
ZIMMessageSendNotification notification = new ZIMMessageSendNotification();
notification.onMessageAttached = message -> {
    // 消息发送前的业务逻辑
};
zim.sendMessage(textMessage, "toConversationID", ZIMConversationType.PEER,
    config, notification, new ZIMMessageSentFullCallback() {
        @Override
        public void onMessageSent(ZIMMessage message, ZIMError errorInfo) {
            // 消息发送结果
        }
        @Override
        public void onMessageAttached(ZIMMessage message) {}
    });

ZIM 媒体文件下载接口(downloadMediaFile)

废弃的旧版 downloadMediaFile(不含 config 参数)接口已被移除,请使用含 ZIMMediaDownloadConfig 参数的新版 downloadMediaFile 接口代替。

ZIMImageMessage imageMessage = (ZIMImageMessage) message;
ZIMMediaDownloadConfig config = new ZIMMediaDownloadConfig();
zim.downloadMediaFile(imageMessage, ZIMMediaFileType.ORIGINAL_FILE, config,
    new ZIMMediaDownloadedCallback() {
        @Override
        public void onMediaDownloadingProgress(ZIMMessage message,
                long currentFileSize, long totalFileSize) {
            // 下载进度
        }
        @Override
        public void onMediaDownloaded(ZIMMessage message, ZIMError errorInfo) {
            // 下载完成
        }
    });

ZIM 消息接收回调接口

在 2.18.0 中已废弃的 onReceivePeerMessageonReceiveRoomMessageonReceiveGroupMessage 回调在本版本中正式移除,建议迁移至 onMessageReceived

@Override
public void onMessageReceived(ZIM zim, ZIMMessageReceivedEventResult result) {
    List<ZIMMessage> messageList = result.messageList;
    ZIMMessageReceivedInfo info = result.info;
    String conversationID = result.conversationID;
    ZIMConversationType conversationType = result.conversationType;
    // 根据 conversationType 处理不同类型会话的消息
}

ZIM 呼叫邀请回调接口

旧版 onCallInvitationTimeout(zim, callID)onCallInvitationRejectedonCallInvitationAcceptedonCallInviteesAnsweredTimeout 回调已被移除,请使用新版 onCallInvitationTimeoutonCallUserStateChanged 代替。

@Override
public void onCallInvitationTimeout(ZIM zim,
        ZIMCallInvitationTimeoutInfo info, String callID) {
    // info.mode 可区分普通模式/进阶模式
}

@Override
public void onCallUserStateChanged(ZIM zim,
        ZIMCallUserStateChangeInfo info, String callID) {
    // info.callUserList 包含状态变更的用户列表
    // 可统一处理接受、拒绝、超时等状态变更
}

importLocalMessages / exportLocalMessages 接口删除

importLocalMessagesexportLocalMessages 接口已在 3.0.0 版本中暂时移除,且暂无替代接口。后续版本将重新开放该功能,请关注 SDK 更新日志。

新增废弃接口(建议迁移)

ZIM 消息接收回调接口

onPeerMessageReceivedonRoomMessageReceivedonGroupMessageReceived 回调在本版本中新增废弃标记,当前仍可正常使用,但建议尽快迁移至 onMessageReceived

@Override
public void onMessageReceived(ZIM zim, ZIMMessageReceivedEventResult result) {
    List<ZIMMessage> messageList = result.messageList;
    ZIMMessageReceivedInfo info = result.info;
    String conversationID = result.conversationID;
    ZIMConversationType conversationType = result.conversationType;
    // 根据 conversationType 处理不同类型会话的消息
}

ZIMGroupConversation 废弃

ZIMGroupConversation 类在 3.0.0 中已被废弃,其中的 isDisabledmutedExpiredTime 字段请通过基类 ZIMConversation 的对应属性替代:

ZIMGroupConversation(已废弃)ZIMConversation(替代属性)
isDisabledisConversationDisabled
mutedExpiredTimeselfMutedExpiredTime
boolean isDisabled = conversation.isConversationDisabled;
long mutedExpiredTime = conversation.selfMutedExpiredTime;

枚举值移除

ZIMMessageType 枚举值移除

SYSTEM(值为 30)已从 ZIMMessageType 枚举中移除,同时 ZIMSystemMessage 类也已被移除。如需发送系统级指令,请使用 ZIMCommandMessage 代替。

// 使用 ZIMCommandMessage 代替 ZIMSystemMessage
ZIMCommandMessage commandMessage = new ZIMCommandMessage();
commandMessage.message = "payload".getBytes(StandardCharsets.UTF_8);
zim.sendMessage(commandMessage, "toConversationID", ZIMConversationType.PEER,
    new ZIMMessageSendConfig(), null, new ZIMMessageSentFullCallback() {
        @Override
        public void onMessageSent(ZIMMessage message, ZIMError errorInfo) {}
        @Override
        public void onMessageAttached(ZIMMessage message) {}
    });

ZIMCallUserState 枚举值移除

OFFLINE(值为 4)已从 ZIMCallUserState 枚举中移除,请检查代码中是否有对该枚举值的判断并将其删除。

// 以下枚举值已移除,请检查并删除代码中对该值的引用
// ZIMCallUserState.OFFLINE  (值为 4)

字段变更

ZIMUserFullInfo.userAvatarUrl 废弃

ZIMUserFullInfo.userAvatarUrl 已废弃,请使用 ZIMUserFullInfo.baseInfo.userAvatarUrl 代替。

String avatarUrl = userFullInfo.baseInfo.userAvatarUrl;

ZIMMessage.conversationSeq 替换为 messageSeq

ZIMMessage.conversationSeq 已被移除,请使用 ZIMMessage.messageSeq 代替。

long seq = message.messageSeq;

ZIMMessageDeletedInfo.isDeleteConversationAllMessage 移除

ZIMMessageDeletedInfo.isDeleteConversationAllMessage 已被移除,请使用 ZIMMessageDeletedInfo.messageDeleteType 代替。

ZIMMessageDeleteType deleteType = deletedInfo.messageDeleteType;
// 通过 deleteType 判断是单条删除还是全量删除

ZIMGroupMemberInfo.memberAvatarUrl 移除

ZIMGroupMemberInfo.memberAvatarUrl 已被移除,请使用 ZIMGroupMemberInfo.userAvatarUrl 代替。

String avatarUrl = groupMemberInfo.userAvatarUrl;

ZIMGroupOperatedInfo 结构变更

ZIMGroupOperatedInfo.operatedUserInfo 字段已被移除,其内部字段已平铺到 ZIMGroupOperatedInfo,可直接从 ZIMGroupOperatedInfo 中获取对应字段。

// 直接从 ZIMGroupOperatedInfo 获取字段
String operatorUserID = groupOperatedInfo.userID;
String operatorUserName = groupOperatedInfo.userName;
String operatorAvatarUrl = groupOperatedInfo.userAvatarUrl;

ZIMCallInvitationSentInfo.errorInvitees 替换

ZIMCallInvitationSentInfo.errorInvitees 已被移除,请使用 ZIMCallInvitationSentInfo.errorUserList 代替,类型由 List<ZIMCallUserInfo> 变更为 List<ZIMErrorUserInfo>

zim.callInvite(invitees, config, new ZIMCallInvitationSentCallback() {
    @Override
    public void onCallInvitationSent(String callID,
            ZIMCallInvitationSentInfo info, ZIMError error) {
        for (ZIMErrorUserInfo errorUser : info.errorUserList) {
            // errorUser.userID, errorUser.reason
        }
    }
});

ZIMConversationChangeInfo 字段变更

ZIMConversationChangeInfo 中的 event 属性(类型 ZIMConversationEvent)已被移除,请使用同结构下的 action 属性(类型 ZIMConversationChangeAction)代替。

@Override
public void onConversationChanged(ZIM zim, ZIMConversationChangeEventResult result) {
    for (ZIMConversationChangeInfo changeInfo : result.infoList) {
        ZIMConversationChangeAction action = changeInfo.action;
        // 根据 action 处理会话变更
    }
}

接口命名与签名变更

以下变更在 3.0.0 中可能导致编译错误,请根据提示完成相应修改。

ZIMMessage getter 方法重命名

ZIMMessage 中以下 getter 方法已重命名,升级后需要同步修改调用方式:

旧方法名新方法名
isUserInserted()getIsUserInserted()
isBroadcastMessage()getIsBroadcastMessage()
isServerMessage()getIsServerMessage()
isMentionAll()getIsMentionAll()
isGroupTargetedMessage()getIsGroupTargetedMessage()
boolean isUserInserted = message.getIsUserInserted();
boolean isBroadcastMessage = message.getIsBroadcastMessage();
boolean isServerMessage = message.getIsServerMessage();
boolean isMentionAll = message.getIsMentionAll();
boolean isGroupTargetedMessage = message.getIsGroupTargetedMessage();

回调接口方法重命名

以下 Callback 接口中的回调方法已重命名,实现这些接口时需要同步更新方法名:

接口类旧方法名新方法名
ZIMUserOfflinePushRuleUpdatedCallbackonUserOfflinePushRuleInfoUpdatedonUserOfflinePushRuleUpdated
ZIMMessageLocalExtendedDataUpdatedCallbackonMessageExtendedDataUpdatedonMessageLocalExtendedData
ZIMGroupMemberMutedListQueriedCallbackonGroupMemberListQueriedonGroupMemberMutedListQueried
ZIMFriendAddCallbackonFriendAddedCallbackonFriendAdded
ZIMFriendApplicationSentCallbackonFriendApplicationSentCallbackonFriendApplicationSent
ZIMFriendsDeletedCallbackonFriendsDeletedCallbackonFriendsDeleted
ZIMFriendsRelationCheckedCallbackonFriendsCheckedonFriendsReactionChecked
zim.addFriend("targetUserID", config, new ZIMFriendAddCallback() {
    @Override
    public void onFriendAdded(ZIMFriendInfo friendInfo, ZIMError error) {
        // 处理添加好友结果
    }
});

类序列化方式变更

以下类及其所有子类已不再实现 Serializable 接口,如果您此前通过 Intent 传递这些对象,请改用 SDK 提供的 toBundle()fromBundle() 方法:

  • ZIMMessage 及其子类
  • ZIMMessageLiteInfo 及其子类
  • ZIMUserInfo 及其子类
  • ZIMTipsMessageChangeInfo 及其子类
  • ZIMConversation 及其子类
// 发送方:通过 toBundle() 将对象写入 Intent
Intent intent = new Intent(this, TargetActivity.class);
intent.putExtra("message_bundle", message.toBundle());
startActivity(intent);

// 接收方:通过 fromBundle() 还原对象
Bundle bundle = getIntent().getBundleExtra("message_bundle");
ZIMMessage message = ZIMMessage.fromBundle(bundle);

回调签名变更

ZIMMessageRevokeConfig 字段重命名

ZIMCombineMessageDetailQueriedCallback 参数变更

ZIMMessage.rootRepliedCount 类型变更

其他方法重命名

枚举值重命名

以下枚举值在 3.0.0 中发生重命名,升级后请检查并替换代码中所有相关引用。

ZIMCallUserState

ZIMCallUserState.QUITED 已重命名为 ZIMCallUserState.QUIT

if (userState == ZIMCallUserState.QUIT) {
    // 用户已退出呼叫
}

ZIMMediaFileType

ZIMMediaFileType.THUMBNAIL_IMAGE 已重命名为 ZIMMediaFileType.THUMBNAIL,请检查调用 downloadMediaFile 等接口时传入的枚举值并替换。

zim.downloadMediaFile(imageMessage, ZIMMediaFileType.THUMBNAIL, config, callback);

ZIMGroupMessageNotificationStatus

ZIMGroupMessageNotificationStatus.DISTURB 已重命名为 ZIMGroupMessageNotificationStatus.DO_NOT_DISTURB

ZIMGroupMessageNotificationStatus status = ZIMGroupMessageNotificationStatus.DO_NOT_DISTURB;

setRoomMembersAttributes 行为变更

从 3.0.0 版本开始,如果通过 setRoomMembersAttributes 设置房间用户属性时,isDeleteAfterOwnerLeftfalse,那么房间用户属性不会在用户离开房间后删除。在 2.x.x 版本中,用户离开房间后会先删除属性,用户回到房间后会再次恢复。


2.28.0 升级指南

注意

ZIM SDK 2.28.0 版本调整了部分接口的返回参数和事件回调触发的时机。从旧版本升级到 2.28.0 版本时,请您阅读以下指南。

接口返回参数变更

ZIMMessageReactionUserListQueriedCallback 回调,将返回的用户表态详情列表类型从 ZIMMessageReactionUserInfo 改为 ZIMMessageReactionUserFullInfo,可用于更加详细的业务 UI 展示。

zim.queryMessageReactionUserList(message, config, new ZIMMessageReactionUserListQueriedCallback() {
    @Override
    public void onMessageReactionUserListQueried(
// !mark
        ZIMMessage message, ArrayList<ZIMMessageReactionUserFullInfo> userInfoList,
        String reactionType, long nextFlag, int totalCount, ZIMError error) {
            // Do business logic
    }
});

事件回调时机变更

注意

以下回调自 2.28.0 版本起触发时机有变化,建议开发者检查相应业务逻辑在升级 SDK 后是否受到影响。

1

onMessageReactionsChanged

2

onConversationChanged

onConversationChanged 回调会在客户端端调用 deleteConversation 成功后触发。

3

onConversationsAllDeleted

onConversationsAllDeleted 回调会在客户端端调用 deleteAllConversations 成功后触发。

2.27.0 升级指南

注意

从 2.27.0 版本开始,以下接口有重大变更,因此在从旧版本升级到 2.27.0 版本时,请您阅读以下指南。

queryGroupList 及相关回调

原接口 queryGroupList,新增一个重载接口 queryGroupList 代替。新版本的 queryGroupList 新增了 countconfig 参数,可用于查询共同加入的群组列表。

ZIMGroupListQueriedCallback 回调,新增了 nextFlag 参数,可用于分页查询锚点。

zim.queryGroupList(new ZIMGroupListQueriedCallback() {
    @Override
    public void onGroupListQueried(ArrayList<ZIMGroupInfo> groupList, long nextFlag,  ZIMError errorInfo) {
        // 通过 errorInfo.code 获取用户加入的群组结果
    }
});

2.19.0 升级指南

注意

从 2.19.0 版本开始,以下接口有重大变更,因此在从旧版本升级到 2.19.0 版本时,请您阅读以下指南。

downloadMediaFile 及相关回调

废弃原接口 downloadMediaFile,请使用同名 downloadMediaFile 代替。新版本的 downloadMediaFile 新增了 config 参数,新增了 config 参数,可用于指定下载组合消息中的单个媒体内容。

ZIMMediaDownloadedCallback 回调做出如下变更以适应组合消息使用,开发者需要根据 IDE 的编译错误提示修正调用:

// 假设 multipleMessage.messageInfoList[0] 是文本消息,multipleMessage.messageInfoList[1] 是图片消息
ZIMMultipleMessage multipleMessage = (ZIMMultipleMessage) message;
// !mark(1:3)
ZIMMediaDownloadConfig config = new ZIMMediaDownloadConfig();
// 指定下载图片消息
config.messageInfoIndex = 1;

// !mark
zim.getInstance().downloadMediaFile(multipleMessage, ZIMMediaFileType.ORIGINAL_FILE, config, new ZIMMediaDownloadedCallback() {
    @Override
// !mark
    public void onMediaDownloadingProgress(ZIMMessage message, long currentFileSize, long totalFileSize) {
        // 下载进度
        // 开发者需要判断 message 的类型并转换成对应类型的消息
        if (message instanceof ZIMMultipleMessage) {
            ZIMMultipleMessage multipleMessage = (ZIMMultipleMessage) message;
            // 处理组合消息
        }
        // 其他类型消息的处理
        ......
    }

    @Override
// !mark
    public void onMediaDownloaded(ZIMMessage message, ZIMError errorInfo) {
        // 下载完成
        // 开发者需要判断 message 的类型并转换成对应类型的消息
        if (message instanceof ZIMMultipleMessage) {
            ZIMMultipleMessage multipleMessage = (ZIMMultipleMessage) message;
            // 处理组合消息
        }
        // 其他类型消息的处理
        ......
    }
});

sendMessage

废弃 sendMediaMessage 和旧的 sendMessage 方法,新增支持发送任意消息类型的 sendMessage 方法。

sendMessage 的回调与旧同名接口的回调不同,从 ZIMMediaMessageSentCallback 变更为 ZIMMessageSentFullCallback

ZIMMessageSentFullCallback 中的 onMediaUploadingProgress 参数 message 类型由 ZIMMessage 变更为 ZIMMediaMessage,以确保仅媒体消息会被回调通知,开发者需要根据 IDE 的编译错误提示修正调用。(目前仅使用了 replyMessage 接口的开发者会受到需要解决编译报错的影响)

ZIMImageMessage imageMessage = (ZIMImageMessage) message;

// !mark
zim.getInstance().sendMessage(imageMessage, "TO_CONVERSATION_ID", ZIMConversationType.PEER, new ZIMMessageSentFullCallback() {
    @Override
    public void onMessageSent(ZIMMessage message, ZIMError errorInfo) {
        // 消息发送结果
    }

    @Override
// !mark
    public void onMediaUploadingProgress(ZIMMediaMessage message, long currentFileSize, long totalFileSize) {
        // 多媒体上传进度
    }

    @Override
    public void onMessageAttached(ZIMMessage message) {
        // 开发者可以监听这个回调执行消息发送前的业务逻辑
    }
});

2.18.0 升级指南

注意

从 2.18.0 版本开始,以下接口有重大变更,因此在从旧版本升级到 2.18.0 版本时,请您阅读以下指南。

单聊消息接收回调

原单聊消息接收回调 onReceivePeerMessage 已被废弃,请使用 onPeerMessageReceived 代替。

新回调支持以下功能:

  • 用户在线时,可通过此回调接收在线单聊消息。
  • 用户重新登录 ZIM SDK 后,可以通过此回调接收离线期间(最长7天)收到的所有单聊消息。
//新接口
public void onPeerMessageReceived(ZIM zim, ArrayList<ZIMMessage> messageList,
                                    ZIMMessageReceivedInfo info, String fromUserID) {}

//老接口
public void onReceivePeerMessage(ZIM zim, ArrayList<ZIMMessage> messageList,
                                    String fromUserID) {}

房间消息接收回调

原房间消息接收回调 onReceiveRoomMessage 已被废弃,请使用 onRoomMessageReceived 代替。

新回调支持以下功能:

  • 用户在线时,可通过此回调接收在线房间消息。
  • 用户从离线恢复到在线后,若仍在房间中,即可通过此回调接收离线期间内的所有房间消息。
//新接口
public void onRoomMessageReceived(ZIM zim, ArrayList<ZIMMessage> messageList,
                                    ZIMMessageReceivedInfo info, String fromRoomID) {}

//老接口
public void onReceiveRoomMessage(ZIM zim, ArrayList<ZIMMessage> messageList,
                                    String fromRoomID) {}

群组消息接收回调

原群组消息接收回调 onReceiveGroupMessage 已被废弃,请使用 onGroupMessageReceived 代替。

新回调支持以下功能:

  • 用户在线时,可通过此回调接收在线群组消息。
  • 用户重新登录 ZIM SDK 后,可以通过通过此回调接收离线期间(最长7天)收到的所有群聊消息。
//新接口
public void onGroupMessageReceived(ZIM zim, ArrayList<ZIMMessage> messageList,
                                    ZIMMessageReceivedInfo info, String fromGroupID) {}

//老接口
public void onReceiveGroupMessage(ZIM zim, ArrayList<ZIMMessage> messageList,
                                    String fromGroupID) {}

2.16.0 升级指南

注意

从 2.16.0 版本开始,以下接口有重大变更,因此在从旧版本升级到 2.16.0 版本时,请您阅读以下指南。

callCancel

说明

以下变更仅对进阶模式呼叫邀请而言。

在新版本的 callCancel 中,如果参数 userIDs 包含一个 userID,则该接口将仅取消邀请该被叫用户。如果 userIDs 参数为空,则该接口将对所有被叫用户取消邀请。

而对于旧版本的 callCancel 接口,无论参数 userIDs 是否为空,均视为对所有被叫用户取消邀请。

由于旧版 ZIM SDK 不兼容单独取消逻辑,因此如果您既需要保留使用老版本 ZIM 实现的取消逻辑,又需要使用新版本的单独取消功能,请隔离新老版本 ZIM 之间的呼叫功能。

// 单独取消 userIdA 、userIdB
List<String> invitees = new ArrayList<>();
invitees.add("userIdA");
invitees.add("userIdB");
ZIMCallCancelConfig cancelConfig = new ZIMCallCancelConfig();
ZIM.getInstance().callCancel(invitees, "callID", cancelConfig, new ZIMCallCancelSentCallback() {
    @Override
    public void onCallCancelSent(String callID, ArrayList<String> errorInvitees, ZIMError errorInfo) {
        
    }
});;

// 取消整个呼叫邀请,当整个呼叫中所有被叫都未接受时可以调用成功    
List<String> invitees = new ArrayList<>();
ZIMCallCancelConfig cancelConfig = new ZIMCallCancelConfig();
ZIM.getInstance().callCancel(invitees, "callID", cancelConfig, new ZIMCallCancelSentCallback() {
    @Override
    public void onCallCancelSent(String callID, ArrayList<String> errorInvitees, ZIMError errorInfo) {

    }
});

上一篇

ZIM Audio

下一篇

ZPNs

当前页

返回到顶部