一存在对象介绍
与IQ一样,Presence也是继承自XMPP的基类Packet信息包,Presence主要有两个用途:1)告诉服务器所有客户端当前所处的状态,2)发出添加/删除好友请求;每个Presence信息包都有一个类型属性Presence.Type,如下:
- 可用:表示处于在线状态
- 不可用:表示处于离线状态
- 订阅:表示发出添加好友的申请
- 退订:表示发出删除好友的申请
- 退订:表示拒绝添加对方为好友
- 错误:表示存在信息报中包含了一个错误消息。
除了类型信息外,在场还包含其他一些可选的属性:
- 状态:用于表示用户状态的自定义文本,例如:XXXXXX
- 优先级:一个表示发送者资源优先级的非负数
- 模式:表示五种状态之一:在线(默认),聊天,离开,XA(扩展距离),请勿打扰
二用法示例
下面的示例表示向服务器发送一个邀请加入好友的应答信息包的代码段:
存在申购=新的Presence(Presence.Type.subscribe);
subscription.setTo(packet.getFrom());
。ConnectionUtils.getConnection()命令sendpacket(认购);
三方法汇总
isAvailable
公共布尔isAvailable()
如果用户在线,返回true,反之,返回false;另外,如果对方的presence信息包中如果包含添加好友的申请,也会返回false。fai方法等价于getType()==Presence.Type.available。需要注意,当用户状态为在线时,其Presence信息包中的Mode属性值还是有可能为以下几种模式:离开(away), extended离开 或者请勿打扰(请勿打扰)。
返回值:在线状态的布尔值
ISAWAY
公共布尔ISAWAY()
返回true如果存在类型是 可用的
和存在方式是 走
, 延长了
,还是 不要打扰
。当类型或模式是任何其他值,包括当存在类型不可用(离线)返回false。这是一个方便的方法等效于输入== Type.available &&(模式== Mode.away | |模式== Mode.xa | |模式== Mode.dnd) 。
返回:
如果真存在的类型是否可用,并存在模式不在的时候,Xa或DND。
的getType
公共Presence.Type 的getType()
返回此存在数据包的类型。
返回:
存在数据包的类型。
的setType
公共无效的setType(Presence.Type型)
设置存在分组的类型。
参数:
输入
-存在分组的类型。
的getStatus
公共字符串 的getStatus()
返回存在更新的状态信息,或空
返回:
状态消息。
setStatus
公共无效setStatus(字符串状态)
设置存在更新的状态信息。状态是描述一个用户的存在(即“去午餐”)自由格式的文本。
参数:
状态
-状态消息。
getPriority
公众诠释getPriority()
返回存在的优先级,或者Integer.MIN_VALUE如果没有优先级已被设定。
返回:
的优先级。
setPriority
公共无效setPriority(INT优先级)
设置存在的优先级。有效范围是-128到128。
参数:
优先级
-存在下的优先级。
抛出:
抛出:IllegalArgumentException
-如果优先级是超出有效范围。
获取模式
公共Presence.Mode 获取模式()
返回存在更新的模式,或 空 Presence.Mode.available
。
返回:
的模式。
调用setMode
公共无效调用setMode(Presence.Mode模式)
设置存在更新的模式。一个空的存在模式值被解释为同样的事情 Presence.Mode.available
。
参数:
模式
-该模式。
setLanguage
公共无效setLanguage(弦乐语言)
设置的xml:lang这个存在的。
参数:
语言
- xml的:这种存在的郎。
因为:
3.0.2
的toXml
公共字符串 的toXml()
说明从类复制: 数据包
返回数据包为XML。数据包的每一个具体的扩展必须实现此方法。除了编写出包的具体数据,每个子类也应该写出来的错误和扩展数据,如果它们被定义。
:由指定的
的toXml
在课堂上分组
返回:
该数据包为String的XML格式。
公共字符串 的toString()
覆盖:
的toString
类对象