NIMSDK-AOS  9.19.0
NIMMessage.java
浏览该文件的文档.
1 package com.netease.nimlib.sdk.msg.model;
2 
8 
9 import java.io.Serializable;
10 import java.util.Map;
11 
12 public interface NIMMessage extends Serializable {
13  /**
14  * 获取消息的uuid, 该域在生成消息时即会填上
15  *
16  * @return 消息uuid
17  */
18  String getUuid();
19 
20  /**
21  * 判断与参数message是否是同一条消息。<br>
22  * 先比较数据库记录ID,如果没有数据库记录ID,则比较{@link #getUuid()}
23  *
24  * @param message 消息对象
25  * @return 两条消息是否相同
26  */
27  boolean isTheSame(NIMMessage message);
28 
29  /**
30  * 获取消息发送者的昵称
31  *
32  * @return 用户的昵称
33  */
34  String getFromNick();
35 
36  /**
37  * 获取消息类型。
38  *
39  * @return 消息类型
40  */
42 
43  /**
44  * 获取消息的子类型
45  *
46  * @return 子类型,小于等于0表示没有子类型
47  */
48  int getSubtype();
49 
50  /**
51  * 设置消息的子类型。
52  *
53  * @param subtype 子类型,小于等于0表示没有子类型
54  */
55  void setSubtype(int subtype);
56 
57  /**
58  * 获取消息接收/发送状态。
59  *
60  * @return 消息状态
61  */
63 
64  /**
65  * 设置消息状态
66  *
67  * @param status 消息状态
68  */
69  void setStatus(MsgStatusEnum status);
70 
71  /**
72  * 设置消息方向
73  *
74  * @param direct 消息方向
75  */
76  void setDirect(MsgDirectionEnum direct);
77 
78  /**
79  * 获取消息方向:发出去的消息还是接收到的消息
80  *
81  * @return 消息方向
82  */
84 
85  /**
86  * 设置消息具体内容。<br>
87  * 当消息类型{@link com.netease.nimlib.sdk.msg.constant.MsgTypeEnum#text}时,该域为消息内容。
88  * 当为其他消息类型时,该域为可选项,如果设置,将作为iOS的apns推送文本以及android内置消息推送的显示文本。
89  *
90  * @param content 消息内容/推送文本
91  */
92  void setContent(String content);
93 
94  /**
95  * 获取消息具体内容。<br>
96  * 当消息类型{@link com.netease.nimlib.sdk.msg.constant.MsgTypeEnum#text}时,该域为消息内容。
97  * 当为其他消息类型时,该域为可选项,如果设置,将作为iOS的apns推送文本以及android内置消息推送的显示文本(1.7.0及以上版本建议使用pushContent)。
98  *
99  * @return 消息内容/推送文本
100  */
101  String getContent();
102 
103  /**
104  * 获取消息时间,单位为ms
105  *
106  * @return 时间
107  */
108  long getTime();
109 
110  /**
111  * 设置说话方的帐号。消息方向{@link #getDirect()}根据改之
112  *
113  * @param account 帐号
114  */
115  void setFromAccount(String account);
116 
117  /**
118  * 获取该条消息发送方的帐号
119  */
120  String getFromAccount();
121 
122  /**
123  * 设置消息附件对象。<br>
124  * 如果附件内部包含状态,或是自定义附件类型,用户可自主更新,以便界面展现。<br>
125  * 注意:设置之后,如需持久化到数据库,需要调用{@link com.netease.nimlib.sdk.msg.MsgService#updateIMMessageStatus}更新
126  *
127  * @param attachment
128  */
129  void setAttachment(MsgAttachment attachment);
130 
131  /**
132  * 获取消息附件对象。仅当{@link #getMsgType()}返回为非text时有效
133  */
135 
136  /**
137  * 获取消息附件文本内容
138  *
139  * @return
140  */
141  String getAttachStr();
142 
143  /**
144  * 获取消息附件接收/发送状态
145  */
147 
148  /**
149  * 设置消息附件状态
150  */
151  void setAttachStatus(AttachStatusEnum attachStatus);
152 
153  /**
154  * 获取消息配置
155  *
156  * @return 消息配置
157  */
159 
160  /**
161  * 设置消息配置
162  *
163  * @param config 消息配置
164  */
165  void setConfig(CustomMessageConfig config);
166 
167  /**
168  * 获取扩展字段(该字段会发送到其他端)
169  *
170  * @return 扩展字段Map
171  */
172  Map<String, Object> getRemoteExtension();
173 
174  /**
175  * 设置扩展字段(该字段会发送到其他端),最大长度1024字节。
176  *
177  * @param remoteExtension 扩展字段Map,开发者需要保证此Map能够转换为JsonObject
178  */
179  void setRemoteExtension(Map<String, Object> remoteExtension);
180 
181  /**
182  * 获取本地扩展字段(仅本地有效)
183  *
184  * @return 扩展字段Map
185  */
186  Map<String, Object> getLocalExtension();
187 
188  /**
189  * 设置本地扩展字段(该字段仅在本地使用有效,不会发送给其他端),最大长度1024字节
190  *
191  * @param localExtension
192  */
193  void setLocalExtension(Map<String, Object> localExtension);
194 
195  /**
196  * 获取第三方回调回来的自定义扩展字段
197  *
198  * @return 第三方回调回来的自定义扩展字段
199  */
200  String getCallbackExtension();
201 
202  /**
203  * 获取自定义推送文案
204  *
205  * @return 自定义推送文案
206  */
207  String getPushContent();
208 
209  /**
210  * 设置自定义推送文案(1.7.0及以上版本建议使用此字段,不要使用setContent来设置推送文案),目前长度限制为500字以内
211  *
212  * @param pushContent 自定义推送文案
213  */
214  void setPushContent(String pushContent);
215 
216  /**
217  * 获取第三方自定义的推送属性
218  *
219  * @return 第三方自定义的推送属性Map
220  */
221  Map<String, Object> getPushPayload();
222 
223  /**
224  * 设置第三方自定义的推送属性
225  *
226  * @param pushPayload 第三方自定义的推送属性Map,开发者需要保证此Map能够转换为JsonObject,属性内容最大长度2048字节
227  */
228  void setPushPayload(Map<String, Object> pushPayload);
229 
230  /**
231  * 获取指定成员推送选项
232  *
233  * @return 指定成员推送选项
234  */
236 
237  /**
238  * 设置指定成员推送选项
239  *
240  * @param pushOption 指定成员推送选项
241  */
242  void setMemberPushOption(MemberPushOption pushOption);
243 
244  /**
245  * 判断自己发送的消息对方是否已读
246  *
247  * @return true:对方已读;false:对方未读
248  */
249  boolean isRemoteRead();
250 
251  /**
252  * 是否需要消息已读(主要针对群消息)
253  *
254  * @return 该消息是否需要发送已读确认
255  */
256  boolean needMsgAck();
257 
258  /**
259  * 设置该消息为需要消息已读的
260  */
261  void setMsgAck();
262 
263  /**
264  * 是否已经发送过群消息已读回执
265  *
266  * @return 是否已经发送过已读回执
267  */
268  boolean hasSendAck();
269 
270  /**
271  * 返回群消息已读回执的已读数
272  *
273  * @return 群里多少人已读了该消息
274  */
275  int getTeamMsgAckCount();
276 
277  /**
278  * 返回群消息已读回执的未读数
279  *
280  * @return 群里多少人还未读该消息
281  */
282  int getTeamMsgUnAckCount();
283 
284  /**
285  * 获取消息发送方类型
286  *
287  * @return 发送方的客户端类型,与ClientType类比较
288  */
289  int getFromClientType();
290 
291  /**
292  * 获取易盾反垃圾配置项
293  *
294  * @return NIMAntiSpamOption
295  */
297 
298  /**
299  * 设置易盾反垃圾选项
300  *
301  * @param nimAntiSpamOption
302  */
303  void setNIMAntiSpamOption(NIMAntiSpamOption nimAntiSpamOption);
304 
305  /**
306  * 命中了客户端反垃圾,服务器处理
307  *
308  * @param hit
309  */
310  void setClientAntiSpam(boolean hit);
311 
312 
313  /**
314  * 如果服务器存在相同的附件文件,是否强制重新上传文件 ,默认false
315  *
316  * @param forceUpload
317  */
318  void setForceUploadFile(boolean forceUpload);
319 
320 
321  /**
322  * 发送消息给对方, 是不是被对方拉黑了(消息本身是发送成功的)
323  *
324  * @return
325  */
326 
327  boolean isInBlackList();
328 
329  /**
330  * 获取服务端消息id
331  *
332  * @return id
333  */
334  long getServerId();
335 
336  /**
337  * 设置消息的选中状态
338  *
339  * @param isChecked true:被选中状态; false: 未被选中状态; null: 不在多选状态
340  */
341  void setChecked(Boolean isChecked);
342 
343  /**
344  * 消息的选中状态
345  *
346  * @return true:被选中状态; false: 未被选中状态; null: 不在多选状态
347  */
348  Boolean isChecked();
349 
350  /**
351  * 消息是否需要刷新到session服务
352  * 只有消息存离线的情况下,才会判断该参数,默认:是
353  *
354  * @return true: 是; false: 否
355  */
356  boolean isSessionUpdate();
357 
358  /**
359  * 设置消息是否需要刷新到session服务
360  * 只有消息存离线的情况下,才会判断该参数
361  */
362  void setSessionUpdate(boolean sessionUpdate);
363 
364  /**
365  * 获取消息的thread信息
366  *
367  * @return 消息的thread信息
368  */
370 
371  /**
372  * 通过此消息的父消息设置消息的thread信息
373  *
374  * @param parent 当前消息的父消息,即当前消息的回复对象
375  */
376  void setThreadOption(NIMMessage parent);
377 
378  /**
379  * 此消息是不是一条thread消息
380  */
381  boolean isThread();
382 
383  /**
384  * 获取快捷评论的最后更新时间
385  *
386  * @return 快捷评论最后更新时间
387  */
389 
390  /**
391  * 该消息是否已经被从服务端撤回或删除
392  *
393  * @return 是否已经被撤回或删除
394  */
395  boolean isDeleted();
396 
397  /**
398  * 获取消息的关键信息
399  *
400  * @return 消息的关键信息
401  */
403 
404  /**
405  * 获取易盾反垃圾字段
406  *
407  * @return 反垃圾字段
408  */
409  String getYidunAntiCheating();
410 
411  /**
412  * 设置易盾反垃圾字段,要求是Json格式
413  *
414  * @param yidunAntiCheating 反垃圾字段,要求是Json格式
415  */
416  void setYidunAntiCheating(String yidunAntiCheating);
417 
418  /**
419  * 获取环境变量
420  * 用于指向不同的抄送,第三方回调等配置
421  * 注意:数据库不会保存此字段
422  *
423  * @return 环境变量
424  */
425  String getEnv();
426 
427  /**
428  * 设置环境变量
429  * 用于指向不同的抄送,第三方回调等配置
430  * 注意:数据库不会保存此字段
431  *
432  * @param env 环境变量
433  */
434  void setEnv(String env);
435 
436  /**
437  * 获取易盾反垃圾扩展字段
438  * @return 易盾反垃圾扩展字段
439  */
440  String getYidunAntiSpamExt();
441 
442  /**
443  * 设置易盾反垃圾扩展字段
444  * @param yidunAntiSpamExt 易盾反垃圾扩展字段,限制json
445  */
446  void setYidunAntiSpamExt(String yidunAntiSpamExt);
447 
448  /**
449  * 获取易盾反垃圾返回的结果
450  * @return 易盾反垃圾返回的结果
451  */
452  String getYidunAntiSpamRes();
453 }
void setYidunAntiSpamExt(String yidunAntiSpamExt)
设置易盾反垃圾扩展字段
MessageKey getMessageKey()
获取消息的关键信息
String getCallbackExtension()
获取第三方回调回来的自定义扩展字段
void setAttachment(MsgAttachment attachment)
设置消息附件对象。 如果附件内部包含状态,或是自定义附件类型,用户可自主更新,以便界面展现。 注意:...
AttachStatusEnum getAttachStatus()
获取消息附件接收/发送状态
String getAttachStr()
获取消息附件文本内容
boolean isTheSame(NIMMessage message)
判断与参数message是否是同一条消息。 先比较数据库记录ID,如果没有数据库记录ID,则比较getUuid() ...
void setLocalExtension(Map< String, Object > localExtension)
设置本地扩展字段(该字段仅在本地使用有效,不会发送给其他端),最大长度1024字节
Boolean isChecked()
消息的选中状态
void setConfig(CustomMessageConfig config)
设置消息配置
String getYidunAntiSpamRes()
获取易盾反垃圾返回的结果
MsgStatusEnum getStatus()
获取消息接收/发送状态。
long getQuickCommentUpdateTime()
获取快捷评论的最后更新时间
long getTime()
获取消息时间,单位为ms
int getTeamMsgAckCount()
返回群消息已读回执的已读数
指定成员推送相关可选项 配置后发送消息,如果遇到414,说明客户端提交参数(forcePushList)格式有误;811说...
String getYidunAntiSpamExt()
获取易盾反垃圾扩展字段
void setPushPayload(Map< String, Object > pushPayload)
设置第三方自定义的推送属性
long getServerId()
获取服务端消息id
void setDirect(MsgDirectionEnum direct)
设置消息方向
消息本身发送/接收状态,附件状态见AttachStatusEnum
Map< String, Object > getPushPayload()
获取第三方自定义的推送属性
MsgDirectionEnum getDirect()
获取消息方向:发出去的消息还是接收到的消息
void setStatus(MsgStatusEnum status)
设置消息状态
void setThreadOption(NIMMessage parent)
通过此消息的父消息设置消息的thread信息
boolean needMsgAck()
是否需要消息已读(主要针对群消息)
int getTeamMsgUnAckCount()
返回群消息已读回执的未读数
void setPushContent(String pushContent)
设置自定义推送文案(1.7.0及以上版本建议使用此字段,不要使用setContent来设置推送文案),目前长度限制为...
void setFromAccount(String account)
设置说话方的帐号。消息方向getDirect()根据改之
void setForceUploadFile(boolean forceUpload)
如果服务器存在相同的附件文件,是否强制重新上传文件 ,默认false
String getEnv()
获取环境变量 用于指向不同的抄送,第三方回调等配置 注意:数据库不会保存此字段
CustomMessageConfig getConfig()
获取消息配置
void setSubtype(int subtype)
设置消息的子类型。
Map< String, Object > getLocalExtension()
获取本地扩展字段(仅本地有效)
消息的配置选项,主要用于设定消息的声明周期,是否需要推送,是否需要计入未读数等。
MsgAttachment getAttachment()
获取消息附件对象。仅当getMsgType()返回为非text时有效
void setClientAntiSpam(boolean hit)
命中了客户端反垃圾,服务器处理
void setAttachStatus(AttachStatusEnum attachStatus)
设置消息附件状态
消息的关键信息,通过这些信息可以从服务端查询到该消息的完整部分
Definition: MessageKey.java:17
void setContent(String content)
设置消息具体内容。 当消息类型com.netease.nimlib.sdk.msg.constant.MsgTypeEnum#text时,该域为消息内容...
void setMemberPushOption(MemberPushOption pushOption)
设置指定成员推送选项
String getFromNick()
获取消息发送者的昵称
String getUuid()
获取消息的uuid, 该域在生成消息时即会填上
String getPushContent()
获取自定义推送文案
boolean isThread()
此消息是不是一条thread消息
NIMAntiSpamOption getNIMAntiSpamOption()
获取易盾反垃圾配置项
void setNIMAntiSpamOption(NIMAntiSpamOption nimAntiSpamOption)
设置易盾反垃圾选项
boolean isInBlackList()
发送消息给对方, 是不是被对方拉黑了(消息本身是发送成功的)
MsgTypeEnum getMsgType()
获取消息类型。
void setChecked(Boolean isChecked)
设置消息的选中状态
void setSessionUpdate(boolean sessionUpdate)
设置消息是否需要刷新到session服务 只有消息存离线的情况下,才会判断该参数
boolean isRemoteRead()
判断自己发送的消息对方是否已读
int getSubtype()
获取消息的子类型
void setRemoteExtension(Map< String, Object > remoteExtension)
设置扩展字段(该字段会发送到其他端),最大长度1024字节。
boolean isDeleted()
该消息是否已经被从服务端撤回或删除
void setEnv(String env)
设置环境变量 用于指向不同的抄送,第三方回调等配置 注意:数据库不会保存此字段
void setMsgAck()
设置该消息为需要消息已读的
boolean isSessionUpdate()
消息是否需要刷新到session服务 只有消息存离线的情况下,才会判断该参数,默认:是
String getYidunAntiCheating()
获取易盾反垃圾字段
MemberPushOption getMemberPushOption()
获取指定成员推送选项
Map< String, Object > getRemoteExtension()
获取扩展字段(该字段会发送到其他端)
void setYidunAntiCheating(String yidunAntiCheating)
设置易盾反垃圾字段,要求是Json格式
boolean hasSendAck()
是否已经发送过群消息已读回执
MsgThreadOption getThreadOption()
获取消息的thread信息
int getFromClientType()
获取消息发送方类型
String getFromAccount()
获取该条消息发送方的帐号
String getContent()
获取消息具体内容。 当消息类型com.netease.nimlib.sdk.msg.constant.MsgTypeEnum#text时,该域为消息内容...