协同sdk说明


消息

<h2>接口</h2> <h3>创建消息</h3> <pre><code class="language-java">/** * 创建文本消息 * @param account 用户id * @param chatName 用户姓名 * @param content 文本内容 * @return */ QDMessage message = QDClient.getInstance().createTextMessage(String account, String chatName, String content) /** * 创建合并转发消息 * @param messageList 转发的消息列表 * @param isGroup 是否为群组 * @return */ QDMessage message = QDClient.getInstance().createMergeMessage(List&lt;QDMessage&gt; messageList, boolean isGroup) /** * 创建密聊文本消息 * @param account 用户id * @param chatName 用户姓名 * @param content 文本内容 * @return */ QDMessage message = QDClient.getInstance().createSecretTextMessage(String account, String chatName, String content) /** * 创建签收消息 * @param account 用户id * @param chatName 用户姓名 * @param content 文本内容 * @return */ QDMessage message = QDClient.getInstance().createSignMessage(String account, String chatName, String content) /** * 创建确认签收消息 * @param account 用户id * @param chatName 用户姓名 * @param extData 额外数据 * @return */ QDMessage message = QDClient.getInstance().createConfirmedMessage(String account, String chatName, String extData) extData组装代码如下: JsonObject extData = new JsonObject(); extData.addProperty("type", "msg_confirmed"); extData.addProperty("style", ""); JsonObject data = new JsonObject(); data.addProperty("msgid", message.getMsgId()); //确认签收的消息id data.addProperty("sendermsgnum", message.getMsgNum()); //确认签收的消息序号 extData.add("data", data); extData.toString() /** * 创建位置信息 * @param chatId 用户id * @param chatName 用户姓名 * @param latitude 经度 * @param longitude 纬度 * @param title 地址标题 * @param address 地址详细地址 * @param subject 会话显示标题 * @return */ QDMessage message = QDClient.getInstance().createLocationMessage(String chatId, String chatName, double latitude, double longitude, String title, String address, String subject) /** * 创建文件消息 * @param chatId 用户id * @param chatName 用户姓名 * @param msgType 消息类型(QDMessage.MSG_TYPE_IMAGE 图片消息, QDMessage.MSG_TYPE_FILE 文件消息 下同) * @param subject 会话显示标题 * @param path 文件本地路径 * @return */ QDMessage message = QDClient.getInstance().createFileMessage(String chatId, String chatName, String msgType, String subject, String path) /** * 创建密聊文件消息 * @param chatId 用户id * @param chatName 用户姓名 * @param msgType 消息类型 * @param subject 会话显示标题 * @param path 文件本地路径 * @return */ QDMessage message = QDClient.getInstance().createSecretFileMessage(String chatId, String chatName, String msgType, String subject, String path) /** * 创建语音消息 * @param chatId 用户id * @param chatName 用户姓名 * @param subject 会话显示标题 * @param path 文件本地路径 * @param duration 语音时长 * @return */ QDMessage message = QDClient.getInstance().createAudioMessage(String chatId, String chatName, String subject, String path, long duration) /** * 创建密聊语音消息 * @param chatId 用户id * @param chatName 用户姓名 * @param subject 会话显示标题 * @param path 文件本地路径 * @param duration 语音时长 * @return */ QDMessage message = QDClient.getInstance().createSecretAudioMessage(String chatId, String chatName, String subject, String path, long duration) /** * 创建小视频消息 * @param chatId 用户id * @param chatName 用户姓名 * @param subject 会话显示标题 * @param path 文件本地路径 * @param thumbPath 视频显示图片本地地址 * @param duration 视频时长 * @return */ QDMessage message = QDClient.getInstance().createVideoMessage(String chatId, String chatName, String subject, String path, String thumbPath, long duration) /** * 创建自定义消息 * @param chatId 用户id * @param chatName 用户姓名 * @param extData 自定义内容 * @param subject 会话显示标题 * @return */ QDMessage message = QDClient.getInstance().createCustomMessage(String chatId, String chatName, String extData, String subject) /** * 创建群组文本消息 * @param groupId 群组id * @param groupName 群组名称 * @param content 文本内容 * @return */ QDMessage message = QDClient.getInstance().createGTextMessage(String groupId, String groupName, String content) /** * 创建群组文本消息(含有@消息) * @param groupId 群组id * @param groupName 群组名称 * @param content 文本内容 * @return */ QDMessage message = QDClient.getInstance().createGAtMessage(String groupId, String groupName, String content, QDAtClickSpan[] spans) /** * @param color 显示颜色 * @param id 人员id @所有人的时候为* * @param name 人员名称或者所有人 * @param listener 点击@字体的监听 **/ QDAtClickSpan span = new QDAtClickSpan(int color, String id, String name); QDAtClickSpan span = new QDAtClickSpan(int color, String id, String name, OnAtClickListener listener); /** * 创建群位置信息 * @param chatId 群组id * @param chatName 群组姓名 * @param latitude 经度 * @param longitude 纬度 * @param title 地址标题 * @param address 地址详细地址 * @param subject 会话显示标题 * @return */ QDMessage message = QDClient.getInstance().createGLocationMessage(String chatId, String chatName, double latitude, double longitude, String title, String address, String subject) /** * 创建群文件消息 * @param chatId 群组id * @param chatName 群组姓名 * @param msgType 消息类型 * @param subject 会话显示标题 * @param path 文件本地路径 * @return */ QDMessage message = QDClient.getInstance().createGFileMessage(String chatId, String chatName, String msgType, String subject, String path) /** * 创建群语音消息 * @param chatId 群组id * @param chatName 群组姓名 * @param subject 会话显示标题 * @param path 文件本地路径 * @param duration 语音时长 * @return */ QDMessage message = QDClient.getInstance().createGAudioMessage(String chatId, String chatName, String subject, String path, long duration) /** * 创建群小视频消息 * @param chatId 群组id * @param chatName 群组姓名 * @param subject 会话显示标题 * @param path 文件本地路径 * @param thumbPath 视频显示图片本地地址 * @param duration 视频时长 * @return */ QDMessage message = QDClient.getInstance().createGVideoMessage(String chatId, String chatName, String subject, String path, String thumbPath, long duration) /** * 创建群自定义消息 * @param chatId 用户id * @param chatName 用户姓名 * @param extData 自定义内容 * @param subject 会话显示标题 * @return */ QDMessage message = QDClient.getInstance().createGCustomMessage(String chatId, String chatName, String extData, String subject)</code></pre> <h3>消息指令</h3> <pre><code class="language-java">/** * 发送消息 * @param message 消息对象 下同 * @param callBack 发送监听 下同 */ QDClient.getInstance().sendMessage(QDMessage message, new QDResultCallBack&lt;QDResponseMSG&gt;(){ @Override public void onError(String errorMsg) { //发送失败 } @Override public void onSuccess(QDResponseMSG response) { //发送成功 } }) /** * 发送密聊消息 * @param message * @param callBack */ QDClient.getInstance().sendSecretMessage(QDMessage message, new QDResultCallBack&lt;QDResponseMSG&gt;(){ @Override public void onError(String errorMsg) { //发送失败 } @Override public void onSuccess(QDResponseMSG response) { //发送成功 } }) /** * 发送群组消息 * @param message * @param callBack */ QDClient.getInstance().sendGMessage(QDMessage message, new QDResultCallBack&lt;QDResponseGMSG&gt;(){ @Override public void onError(String errorMsg) { //发送失败 } @Override public void onSuccess(QDResponseGMSG response) { //发送成功 } }) /** * 设置消息已读 * @param message 未读的最后一条消息 下同 */ QDClient.getInstance().setMsgRead(QDMessage message) /** * 设置群消息已读 * @param message */ QDClient.getInstance().setGMsgRead(QDMessage message) /** * 获取离线消息(登陆成功之后需要主动去获取离线消息, 可以在自己需要的页面中添加) */ QDClient.getInstance().fetchOfflineMessage() /** * 发送命令型消息 * @param chatId 聊天对象id * @param chatName 聊天对象姓名 * @param opType 命令类型 */ QDClient.getInstance().setCmdMessage(String chatId, String chatName, String opType) /** * 撤回消息 * @param message 被撤回的消息 */ QDClient.getInstance().revokeMessage(QDMessage message, QDResultCallBack callBack) /** * 转发消息 * @param chatId 转发对象id * @param chatName 转发对象名称 * @param message 转发的消息 * @param isGroup 是否为群组 */ QDMessage message = QDClient.getInstance().forwardMessage(String chatId, String chatName, boolean isGroup, QDMessage message) /** * 收藏消息 * @param content * @param callBack */ QDClient.getInstance().collectMessage(String content, QDResultCallBack callBack) /** * 获取收藏列表 * @param callBack */ QDClient.getInstance().getCollections(QDResultCallBack callBack) /** * 删除收藏消息 * @param gid 收藏消息的gid * @param callBack */ QDClient.getInstance().deleteCollection(String gid, QDResultCallBack callBack) /** * 销毁群组信息 * @param message */ QDClient.getInstance().dropGroupMessage(QDMessage message, QDResultCallBack callBack) /** * 获取群消息阅读状态 * @param message * @param callBack */ QDClient.getInstance().getMsgReadStatus(QDMessage message, QDResultCallBack callBack) /** * 群发消息 * @param content */ QDClient.getInstance().sendMuserMsg(String content)</code></pre> <h2>QDMessage 类</h2> <pre><code class="language-java">消息状态 MSG_STATUS_SENDING 发送中 MSG_STATUS_SEND_OK 发送成功 MSG_STATUS_SEND_FAILED 发送失败 MSG_STATUS_READ_ACK 消息已读 MSG_STATUS_RECEIVE 消息已经接收 DIRECTION_OUT 自己发送 DIRECTION_IN 收到 UNREAD 未读 READ 已读 文件状态 MSG_FILE_STATUS_UPLOADING 正在上传 MSG_FILE_STATUS_UPLOADED 上传成功 MSG_FILE_STATUS_UPLOAD_FAILED 上传失败 MSG_FILE_STATUS_UNDOWNLOAD 还没有下载 MSG_FILE_STATUS_DOWNLOADED 下载成功 MSG_FILE_STATUS_DOWNLOAD_FAILED 下载失败 消息类型 MSG_TYPE_TEXT 文本 MSG_TYPE_IMAGE 图片 MSG_TYPE_FILE 文件 MSG_TYPE_LOCATION 位置 MSG_TYPE_VOICE 语音消息(录音) MSG_TYPE_SHOOT 小视频 MSG_TYPE_NOTIFY 通知 MSG_TYPE_CANCEL 撤回消息 MSG_TYPE_CUSTOM 自定义消息 MSG_TYPE_FORMVIEW 签收消息 MSG_TYPE_CONFIRMED 确认签收消息 MSG_TYPE_NET_AUDIO 实时语音消息 MSG_TYPE_NET_VIDEO 实时视频消息 MSG_TYPE_MERGE_FORWARD 合并消息 / ** * 消息id */ String msgId / ** * 序号 */ String msgNum / ** * 类型 */ String type / ** * 标题 */ String subject / ** * 发送者id */ String senderAccount / ** * 发送者姓名 */ String senderName / ** * 文本消息内容 */ String text / ** * 自定义消息内容 */ String extData / ** * 地址内容 */ String content / ** * 文件内容 */ String fileInfo / ** * 文件本地地址 */ String filePath / ** * 缩略图本地地址 */ String thumbPath / ** * 状态 */ int status / ** * 文件状态 */ int fileStatus / ** * 接受者id */ String receiverAccount / ** * 接受者姓名 */ String receiverName / ** * 发送时间 */ long createTime / ** * 消息方向(自己发的还是接收的) */ int direction / ** * 是否已读 */ int isRead / ** * 群组id */ String groupId / ** * 群组名称 */ String groupName / ** * 是否包含@自己 */ int isAtSelf / ** * 引用消息id */ String sourceMsgId </code></pre> <h2>消息相关数据库操作</h2> <pre><code class="language-java"> /** * 插入一条消息 * @param message */ QDMessageDao.getInstance().insertMessage(QDMessage message) /** * 插入一组消息 * @param messageList */ QDMessageDao.getInstance().insertMessageList(List&lt;QDMessage&gt; messageList) /** * 获取和某人的聊天 * @param account 用户id * @return List&lt;QDMessage&gt; */ QDMessageDao.getInstance().getMessagesByAccount(String account) /** * 获取和自己pc客户端聊天 * @return List&lt;QDMessage&gt; */ QDMessageDao.getInstance().getMessageBySelfPc() /** * 获取和默认的密聊消息 * @param account 用户id * @return List&lt;QDMessage&gt; */ QDMessageDao.getInstance().getSecretMessagesByAccount(String account) /** * 获取某群的聊天 * @param groupId 群组id * @return List&lt;QDMessage&gt; */ QDMessageDao.getInstance().getMessagesByGroupId(String groupId) /** * 获取最后一条@自己的消息 * @param groupId 群组id * @return QDMessage */ QDMessageDao.getInstance().getLastUnreadAtSelfMessageByGroupId(String groupId) /** * 设置和某人的消息已读 * @param account 用户id */ QDMessageDao.getInstance().setMessageReadByAccount(String account) /** * 设置群组消息已读 * @param groupId 群组id */ QDMessageDao.getInstance().setMessageReadByGroupId(String groupId) /** * 删除和某人的消息 * @param account 用户id */ QDMessageDao.getInstance().deleteMessageByAccount(String account) /** * 删除某群的消息 * @param groupId 群组id */ QDMessageDao.getInstance().deleteMessageByGroupId(String groupId) /** * 根据id删除消息 * @param msgId 消息id */ QDMessageDao.getInstance().deleteMessageByMsgId(String msgId) /** * 根据id列表删除消息 * @param idList 消息id列表 */ QDMessageDao.getInstance().deleteMessageByMsgIdList(List&lt;String&gt; idList) /** * 根据id获取message * @param msgId 消息id * @return QDMessage */ QDMessageDao.getInstance().getMessageByMsgId(String msgId) /** * 搜索单聊记录 * @param searchTxt 搜索字段 * @return List&lt;QDMessage&gt; */ QDMessageDao.getInstance().searchMessageBySelfAccount(String searchTxt) /** * 搜索群聊记录 * @param searchTxt 搜索字段 * @return List&lt;QDMessage&gt; */ QDMessageDao.getInstance().searchGroupMessage(String searchTxt) /** * 搜索和某人的聊天记录 * @param account 用户id * @param searchTxt 搜索字段 * @return List&lt;QDMessage&gt; */ QDMessageDao.getInstance().searchMessageWithAccount(String account, String searchTxt) /** * 搜索某群的聊天记录 * @param groupId 群组id * @param searchTxt 搜索字段 * @return List&lt;QDMessage&gt; */ QDMessageDao.getInstance().searchMessageWithGroupId(String groupId, String searchTxt)</code></pre>

页面列表

ITEM_HTML