NIMSDK-AOS  9.19.0
EnterChatRoomData.java
浏览该文件的文档.
1 package com.netease.nimlib.sdk.chatroom.model;
2 
3 import android.text.TextUtils;
4 
6 import java.util.Map;
7 
8 /**
9  * Created by huangjun on 2015/12/28.
10  */
11 public class EnterChatRoomData {
12 
13  private String roomId; // 必填,聊天室ID
14 
15  /*
16  * 独立模式
17  */
18  private boolean independentMode; // 是否是独立模式登录,默认为false,需要依赖IM登录。独立模式可以不依赖IM登录。
19  /**
20  * 是否匿名模式
21  */
22  private boolean isAnonymousMode;
23 
24  /**
25  * 独立登录模式下,才启用
26  */
27  private String appKey; // 聊天室可以使用独立的appkey, 不依赖于im appkey, 如果不传,则使用im appkey,
28 
29  private String account; // 登录用户名,不填则表示匿名
30 
31  private String token; // 登录token
32 
33  private ChatRoomIndependentCallback independentModeCallback; // 独立模式的回调
34 
35  /*
36  * 可选字段,如果不填则直接使用NimUserInfo的数据
37  */
38  private String nick; // 进入聊天室后展示的昵称
39 
40  private String avatar; // 进入聊天室后展示的头像
41 
42  private Map<String, Object> extension; // 进入聊天室后展示的扩展字段,长度限制4K
43 
44  private Map<String, Object> notifyExtension; // 进入聊天室通知开发者扩展字段,长度限制2K
45 
46  private String tags; // 登录标签,可以设置多个,json_array格式,例子:["tag1", "tag2"]
47 
48  private String notifyTargetTags; // 登录登出通知的目标标签,是一个标签表达式,见TagCalculator和TagPattern
49  /**
50  * 反垃圾配置参数
51  */
52  private AntiSpamConfig antiSpamConfig;
53 
54  private Integer loginAuthType; //鉴权方式,0表示最初的loginToken的校验方式,1表示基于appSecret计算的token鉴权方式,2表示基于第三方回调的token鉴权方式,默认0
55 
56  private String loginExt; //登录自定义字段,用于提交给用户的第三方回调服务进行登录检测
57 
58  private ChatRoomSpatialLocation chatRoomSpatialLocation; //空间位置信息
59  /**
60  * loginAuthType=1时必须要设置
61  * @Deprecated 请使用 SDKOptions.ChatRoomAuthProvider
62  */
63  @Deprecated
64  private ChatRoomAuthProvider chatRoomAuthProvider;//动态token提供回调
65 
66  /**
67  * 获取聊天室id
68  *
69  * @return
70  */
71  public String getRoomId() {
72  return roomId;
73  }
74 
75  /**
76  * 设置聊天室id
77  *
78  * @param roomId
79  */
80  public void setRoomId(String roomId) {
81  this.roomId = roomId;
82  }
83 
84  /**
85  * 获取聊天室appKey
86  *
87  * @return
88  */
89  public String getAppKey() {
90  return appKey;
91  }
92 
93  /**
94  * 设置聊天室appKey,独立登录模式下,才启用, 不传则使用IM对应的appKey, 需要保证roomId与appKey的对应关系
95  *
96  * @param appKey
97  */
98  public void setAppKey(String appKey) {
99  this.appKey = appKey;
100  }
101 
102  /**
103  * 获取聊天室展示的昵称
104  *
105  * @return
106  */
107  public String getNick() {
108  return nick;
109  }
110 
111  /**
112  * 设置聊天室展示的昵称,可选字段,如果不填则直接使用NimUserInfo的数据
113  *
114  * @param nick
115  */
116  public void setNick(String nick) {
117  this.nick = nick;
118  }
119 
120  /**
121  * 获取聊天室展示的头像
122  *
123  * @return
124  */
125  public String getAvatar() {
126  return avatar;
127  }
128 
129  /**
130  * 设置聊天室展示的头像
131  *
132  * @param avatar
133  */
134  public void setAvatar(String avatar) {
135  this.avatar = avatar;
136  }
137 
138  /**
139  * 获取进入聊天室后展示的扩展字段
140  *
141  * @return
142  */
143  public Map<String, Object> getExtension() {
144  return extension;
145  }
146 
147  /**
148  * 设置进入聊天室后展示的扩展字段,长度限制4k
149  *
150  * @param extension
151  */
152  public void setExtension(Map<String, Object> extension) {
153  this.extension = extension;
154  }
155 
156  /**
157  * 获取聊天室通知开发者扩展字段
158  *
159  * @return
160  */
161  public Map<String, Object> getNotifyExtension() {
162  return notifyExtension;
163  }
164 
165  /**
166  * 设置聊天室通知开发者扩展字段,长度限制1k
167  *
168  * @param notifyExtension
169  */
170  public void setNotifyExtension(Map<String, Object> notifyExtension) {
171  this.notifyExtension = notifyExtension;
172  }
173 
174  /**
175  * 获取 登录标签
176  * @return
177  */
178  public String getTags() {
179  return tags;
180  }
181 
182  /**
183  * 设置 登录标签
184  * @param tags
185  */
186  public void setTags(String tags) {
187  this.tags = tags;
188  }
189 
190  /**
191  * 获取 登录登出通知的目标标签
192  * @return
193  */
194  public String getNotifyTargetTags() {
195  return notifyTargetTags;
196  }
197 
198  /**
199  * 设置 登录登出通知的目标标签
200  * @param notifyTargetTags
201  */
202  public void setNotifyTargetTags(String notifyTargetTags) {
203  this.notifyTargetTags = notifyTargetTags;
204  }
205 
206  /**
207  * 是否是独立登录聊天室
208  *
209  * @return false,需要IM先登录才可以进入聊天室。true,不需要依赖IM,支持匿名登录,实际账号密码登录。
210  */
211  public boolean isIndependentMode() {
212  return independentMode;
213  }
214 
215  public boolean isAnonymousMode() {
216  return isAnonymousMode;
217  }
218 
219  /**
220  * 获取独立登录模式的用户账号
221  *
222  * @return 账号,null表示匿名登录
223  */
224  public String getAccount() {
225  return account;
226  }
227 
228  /**
229  * 获取独立登录模式的用户密码
230  *
231  * @return 登录口令
232  */
233  public String getToken() {
234  return token;
235  }
236 
237  /**
238  * 获取鉴权方式
239  * @return
240  */
241  public Integer getLoginAuthType() {
242  return loginAuthType;
243  }
244 
245  /**
246  * 设置鉴权方式
247  * @param loginAuthType
248  */
249  public void setLoginAuthType(Integer loginAuthType) {
250  this.loginAuthType = loginAuthType;
251  }
252 
253  /**
254  * 获取登录自定义字段
255  * @return
256  */
257  public String getLoginExt() {
258  return loginExt;
259  }
260 
261  /**
262  * 设置登录自定义字段
263  * @param loginExt
264  */
265  public void setLoginExt(String loginExt) {
266  this.loginExt = loginExt;
267  }
268 
270  return chatRoomSpatialLocation;
271  }
272 
273  public void setChatRoomSpatialLocation(ChatRoomSpatialLocation chatRoomSpatialLocation) {
274  this.chatRoomSpatialLocation = chatRoomSpatialLocation;
275  }
276 
277  @Deprecated
279  return chatRoomAuthProvider;
280  }
281 
282  @Deprecated
284  ChatRoomAuthProvider chatRoomAuthProvider) {
285  this.chatRoomAuthProvider = chatRoomAuthProvider;
286  }
287 
289  return independentModeCallback;
290  }
291 
293  return antiSpamConfig;
294  }
295 
296  public void setAntiSpamConfig(AntiSpamConfig antiSpamConfig) {
297  this.antiSpamConfig = antiSpamConfig;
298  }
299 
300  /**
301  * 设置聊天室独立模式
302  *
303  * @param cb 如果是独立模式,必须提供回调函数,用于SDK向APP获取聊天室地址信息的数据。
304  * @param account 独立登录的账号,可以不填。不填即为匿名登录
305  * @param token 独立登录的密码。
306  */
307  public void setIndependentMode(ChatRoomIndependentCallback cb, String account, String token) {
308  this.independentMode = true;
309  this.independentModeCallback = cb;
310  this.account = account;
311  this.token = token;
312  this.isAnonymousMode = TextUtils.isEmpty(account);
313  }
314 
315  /**
316  * 设置聊天室独立模式
317  *
318  * @param cb 如果是独立模式,必须提供回调函数,用于SDK向APP获取聊天室地址信息的数据。
319  * @param account 独立登录的账号,
320  * @param token 独立登录的密码。
321  * @param isAnonymousMode 是否匿名模式,如果为false,account参数不可为空
322  */
323  public void setIndependentMode(ChatRoomIndependentCallback cb, String account, String token,boolean isAnonymousMode) {
324  this.independentMode = true;
325  this.independentModeCallback = cb;
326  this.account = account;
327  this.token = token;
328  this.isAnonymousMode = isAnonymousMode;
329  }
330 
331  public EnterChatRoomData(String roomId) {
332  this.roomId = roomId;
333  }
334 
335  public boolean isValid() {
336  if (TextUtils.isEmpty(roomId)) {
337  return false;
338  }
339  try {
340  Long.parseLong(roomId);
341  return true;
342  } catch (NumberFormatException e) {
343  return false;
344  }
345  }
346 
347 }
聊天室独立登录模式的回调函数,用于上层 APP 向 SDK 提供数据
void setLoginAuthType(Integer loginAuthType)
设置鉴权方式
Map< String, Object > getExtension()
获取进入聊天室后展示的扩展字段
void setNotifyTargetTags(String notifyTargetTags)
设置 登录登出通知的目标标签
String getAvatar()
获取聊天室展示的头像
String getNotifyTargetTags()
获取 登录登出通知的目标标签
void setIndependentMode(ChatRoomIndependentCallback cb, String account, String token)
设置聊天室独立模式
String getAccount()
获取独立登录模式的用户账号
使用进入聊天室时使用动态token方式时,SDK通过该接口从App获取动态token
void setAvatar(String avatar)
设置聊天室展示的头像
void setExtension(Map< String, Object > extension)
设置进入聊天室后展示的扩展字段,长度限制4k
void setLoginExt(String loginExt)
设置登录自定义字段
String getToken()
获取独立登录模式的用户密码
Map< String, Object > getNotifyExtension()
获取聊天室通知开发者扩展字段
void setNick(String nick)
设置聊天室展示的昵称,可选字段,如果不填则直接使用NimUserInfo的数据
void setAppKey(String appKey)
设置聊天室appKey,独立登录模式下,才启用, 不传则使用IM对应的appKey, 需要保证roomId与appKey的对应关...
void setChatRoomAuthProvider(ChatRoomAuthProvider chatRoomAuthProvider)
void setIndependentMode(ChatRoomIndependentCallback cb, String account, String token, boolean isAnonymousMode)
设置聊天室独立模式
boolean isIndependentMode()
是否是独立登录聊天室
void setChatRoomSpatialLocation(ChatRoomSpatialLocation chatRoomSpatialLocation)
void setNotifyExtension(Map< String, Object > notifyExtension)
设置聊天室通知开发者扩展字段,长度限制1k