Android api

来自恩布企业IM,协作平台文档
跳转至: 导航搜索


恩布互联Android端API手册

目录

前言

(本安卓API文档不是最新版本,请下载最新安卓源码,看API接口描述!)

说明文档适用于安卓版客户端应用开发,在接入之前,请确认您已在恩布开放平台注册成为开发者,并已获得开发许可。

准备工作

申请开发许可

开发许可申请成功后,会获得app id 和app key,用于开发过程中的验证。

导入SDK包

Android-API-Fig2.2-1.jpg


将获取的工具包解压,提取出libs文件夹下的jar包 将获取到的jar包导入到您工程目录下的libs文件夹

Android-API-Fig2.2-2.jpg

注意: 使用'ADT 17'以下用户需要手动添加'libs下的jar文件到工程Path中; 使用'ADT 21'以上的用户需要在您的工程目录下选择Properties->Java Build Path->Order and Export,勾选Android Private Libraries和Android Dependencies,可消除classnotfoundexception。


配置AndroidManifest

配置用户权限(重要)

在工程AndroidManifest.xml中配置用户权限

请将下面权限配置代码复制到 AndroidManifest.xml 文件中:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />	


接口及相关说明

初始化信息

初始化和配置信息设置的操作,最好放在application中:

public class MyApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();      
        //TODO 系统相关初始化信息放入此处
    }
}

初始化恩布即时聊天的系统资源

Entboost.init(getApplicationContext());


配置系统参数

1)配置私有通讯云服务器地址

Entboost.setLogonCenterAddr(logonCenterAddr);

参数说明: logonCenterAddr:服务器地址,格式www.entboost.com:8080

2)设置是否显示调试日志

Entboost.showSotpLog(true);


注册用户

普通用户(邮箱)注册

/**
 * 普通用户邮箱注册,需要邮箱验证激活帐号
 * 
 * @param app_id
 *            开发者ID
 * @param apppwd
 *            开发者密钥
 * @param email
 *            邮箱地址
 * @param sPwd
 *            帐号密码
 * @param listener
 */
EntboostUM.emailRegister(app_id, apppwd, email, sPwd, new RegisterListener(){
    @Override
    public void onFailure(String errMsg) {
        //TODO 注册失败
    }
    @Override
    public void onRegisterSuccess() {
    //TODO 注册成功
    }
});

注册后需要注册用户去注册邮箱中激活验证。


登录授权及退出(重要)

登录授权

1.普通用户登录

/**
 * 用户帐号登录系统,默认在线登录
 * 
 * @param app_id
 *            开发者ID
 * @param apppwd
 *            开发者密钥
 * @param account
 *            用户名称
 * @param pwd
 *            用户密码
 * @param logonAccountListener
 *            登录的回调函数
 */
EntboostLC.logon(app_id, apppwd,account,pwd, new LogonAccountListener() {

    @Override
    public void onFailure(String errMsg) {
        //TODO 登录失败
    }

    @Override
    public void onLogonSuccess(AccountInfo pAccountInfo) {
        //TODO 登录成功
    }

});

/**
 * 用户帐号自动登录系统,默认在线登录(适用于登陆过一次,不再需要输入密码的自动登陆)
 * 
 * @param app_id
 *            开发者ID
 * @param apppwd
 *            开发者密钥
 * @param account
 *            用户名称
 * @param logonAccountListener
 *            登录的回调函数
 */
EntboostLC.logon(app_id, apppwd,account, new LogonAccountListener() {

    @Override
    public void onFailure(String errMsg) {
        //TODO 登录失败
    }

    @Override
    public void onLogonSuccess(AccountInfo pAccountInfo) {
        //TODO 登录成功
    }

});


2.访客登录

/**
 * 访客登录
 * @param app_id 开发者ID
 * @param apppwd 开发者密钥
 * @param logonAccountListener 登录的回调函数
 */
EntboostLC.logonVisitor(app_id, apppwd, new LogonAccountListener() {
    @Override
    public void onFailure(String errMsg) {
        //TODO 登录失败
    }
    @Override
    public void onLogonSuccess(AccountInfo pAccountInfo) {
        //TODO 登录成功
    }
});


找回密码

/**
 * 用户找回密码,输入注册邮箱、手机号码或用户ID,发送重设密码到用户注册邮箱上
 * 
 * @param app_id
 *            开发者ID
 * @param apppwd
 *            开发者密钥
 * @param account
 *            注册邮箱、手机号码或用户ID(目前只支持注册邮箱)
 * @param listener
 *            找回密码的回调函数
 */
EntboostLC.findPwd(app_id, apppwd, account,new FindPWDListener() {

    @Override
    public void onFailure(String errMsg) {
        //TODO 找回密码失败
    }

    @Override
    public void onFindPWDSuccess() {
        //TODO 找回密码成功
    }

});

退出登录

代码示例 EntboostLC.logout(); 说明:调用此函数,退出登录并保存当前用户信息到本地; 如果想在退出后关闭通讯线程资源,在退出成功后调用代码: Entboost.onDestroy();


登录用户个人信息

获取登录用户个人信息

EntboostCache. getUser(); //获取保存在本地的账户信息

EntboostCache. getUid() //获取保存在本地的帐号ID

编辑个人信息

/**
 * 编辑个人信息
 * 
 * @param sNewUserName 用户名称
 * @param sNewDescription 备注信息
 * @param listener 编辑监听
 */
EntboostUM.editUserInfo(sNewUserName, sNewDescription, new EditInfoListener() {

    @Override
    public void onFailure(String errMsg) {
        //TODO 修改失败
    }

    @Override
    public void onEditInfoSuccess() {
        //TODO 修改成功
    }

});

更新用户名称

/**
 * 修改用户名称
 * 
 * @param sNewUserName 用户名称
 * @param listener 编辑监听
 */
EntboostUM.changeUserName(sNewUserName, new EditInfoListener() {

    @Override
    public void onFailure(String errMsg) {
        //TODO 修改失败
    }

    @Override
    public void onEditInfoSuccess() {
        //TODO 修改成功
    }

});

修改用户密码

/**
 * 修改密码
 * 
 * @param sNewPassword 新密码
 * @param listener 编辑监听
 */
EntboostUM.changePassword(sNewPassword,new EditInfoListener() {

    @Override
    public void onFailure(String errMsg) {
        //TODO 修改失败
    }

    @Override
        public void onEditInfoSuccess() {
        //TODO 修改成功
    }

});

更新个人备注信息

/**
 * 更新帐号备注
 * 
 * @param sNewDescription 备注信息
 * @param listener 编辑监听
 */
EntboostUM.setDescription(sNewDescription, new EditInfoListener() {
			
    @Override
    public void onFailure(String errMsg) {
        //TODO 修改失败
    }

    @Override
    public void onEditInfoSuccess() {
        //TODO 修改成功
    }

});


呼叫操作

会话之前需要呼叫对方,同企业、同群组的用户在接收到呼叫后,会自动接听。联系人之间接收到呼叫也可以自动接听,这些都可以通过个人设置来配置。默认是全部自动接听。


呼叫用户

/**
 * 呼叫用户
 * 
 * @param uid
 *            呼叫对方的ID
 * @param listener
 *            呼叫监听
 */
EntboostCM.callUser(Long uid, CallUserListener listener)

/**
 * 呼叫用户
 * 
 * @param account
 *            呼叫对方的帐号
 * @param listener
 *            呼叫监听
 */
EntboostCM.callUser(String account, CallUserListener listener)


呼叫缓存

呼叫之后,呼叫信息会保存到缓存,用户可以通过缓存来处理呼叫。

首先在历史动态信息中有记录呼叫的信息。

dynamicNews.getType() ==DynamicNews.TYPE_CALL //表示动态信息的类型是呼叫。

获取所有的呼叫信息列表:

/**
 * 获取呼叫信息列表
 * @return Vector<CardInfo>
 */
EntboostCache.getCallCards()

响应呼叫

/**
 * 响应呼叫
 * @param call_id 呼叫的编号
 * @param to 呼叫对方编号
 * @param bAccept 是否接收呼叫
 */
EntboostCM.callAnswer(Long call_id, Long to, boolean bAccept)


呼叫监听

监听的实现方式请参考系统监听部分。

/**
 * 有呼叫呼入事件处理
 */
 public abstract void onCallIncoming(CardInfo card);
/**
 * 收到用户拒绝会话处理
 * 
 * @param callInfo
 */
 public abstract void onCallReject(CardInfo card);
/**
 * 收到用户挂断会话处理
 */
public abstract void onCallHangup(Long to);
/**
 * 收到会话超时处理
 * 
 * @param callInfo
 */
public abstract void onCallTimeout(CardInfo card);
/**
 * 当用户加入会话时处理
 * 
 * @param connectInfo
 */
public abstract void onCallConnected(Long to);


个人会话操作

查找联系人ID

/**
 * 查询联系人帐号,获取用户UID
 * 
 * @param account
 *            帐号
 * @param listener
 */
EntboostUM. queryContact(account,listener);

所有发送操作都需要先获取发送对象的ID,该方法为通过账号信息查找ID。


发送文本消息

/**
 * 给个人发送文本信息
 * 
 * @param sTo
 *            发送对方的ID
 * @param text
 *            文本信息
 */
EntboostCM. sendText (sTo, text);
/**
 * 给个人发送文本信息
 * 
 * @param account
 *            发送对方的账号
 * @param text
 *            文本信息
 */
EntboostCM. sendText (account, text);

一般来说发送对方的ID,在登陆后就会获取到群组成员信息,这些信息里面会有ID。

如果是联系人,在没有ID信息的情况下,可以调用查找联系人ID的方法来获取。


发送表情

发送表情首先要获取所有的表情资源,提供展示界面,方便在输入信息时选择。

登陆后会自动加载表情资源信息,用户在需要界面展示的时候,可以从缓存中获取表情资源列表。

Resource是表情资源对象,从中我们可以获取资源对象的编号,来得到资源图片的对象。

/**
 * 获取所有的表情资源
 * 
 * @return  Vector<Resource> 返回表情资源对象的集合
 */
EntboostCache. getEmotionslist()
/**
 * 通过表情资源编号获取表情图片的Bitmap对象
 * @param rid 表情资源编号,通过Resource对象来获取 resource.getRes_id()
 * @return
 */
EmotionUtils.getEmotionBitmap(Long rid)

在展示在界面上的时候,我们往往使用ImageView来加载表情:

ImageView.setImageBitmap(EmotionUtils.getEmotionBitmap(rid))

在发送表情信息的时候,我们可能会用到将表情加载到文本框:

/**
 * 将表情资源添加到文本编辑框中
 * @param mContentEdit 文本编辑框
 * @param emotions 表情资源对象
 */
UIUtils.addEmotions(EditText mContentEdit,Resource emotions)


以GridView展示表情资源为例: Android-API-Fig3.7.3-1.png


发送表情和文本是相同的,都是获取到文本框中的内容后发送

EntboostCM. sendText (sTo, text);
EntboostCM. sendText (account, text);


发送图片

首先获取本地图片的地址,或者先拍照再获取图片地址也可以。

/**
 * 给个人发送图片消息
 * 
 * @param sTo
 *            发送对方的ID
 * @param pic
 *            图片存放地址
 */
EntboostCM. sendPic (sTo, pic);
/**
 * 给个人发送图片消息
 * 
 * @param account
 *            发送对方的账号
 * @param pic
 *            图片存放地址
 */
EntboostCM. sendPic (account, pic);


发送语音

发送语音的时候需要借助ExtAudioRecorder语音工具类

1.首先打开录音

ExtAudioRecorder recorder = EntboostCM.startRecording();

2.录音结束后,需要关闭录音

recorder.stopRecord();

3.在录音结束后,可以获取到录音文件地址

recorder.getFilePath()

4.发送录音

/**
 * 给个人发送语音信息
 * 
 * @param sTo
 *            发送对方的ID
 * @param voice
 *            语言文件存放地址
 */
EntboostCM. sendVoice(sTo, voice)
/**
 * 给个人发送语音信息
 * 
 * @param account
 *            发送对方的账号
 * @param voice
 *            语言文件存放地址
 */
EntboostCM. sendVoice(account, voice)

接收的时候获取到ChatRoomRichMsg对象

5.先判断是否为语音信息

mChatMsg.getType()==ChatRoomRichMsg.CHATROOMRICHMSG_TYPE_VOICE

6.获取语音文件地址

mChatMsg.getVoicePath();

7.播放语音文件

ExtAudioRecorder.play(mChatMsg.getVoicePath());


接收消息

接收消息需要注册系统监听,请参考后面关于接收监听的章节,这里只介绍接收消息的监听方法

/**
 * 接收到用户发送的消息
 * 
 * @param msg
 */
public abstract void onReceiveUserMessage(ChatRoomRichMsg msg);

用户实现这个接口,就可以完成接收到消息后的操作,方法中的参数ChatRoomRichMsg为传入的消息对象,我们可以从这个对象中获取想要的信息。

1.获取会话的类型

msg.getType()
ChatRoomRichMsg.CHATTYPE_PERSON = 0;//个人会话
ChatRoomRichMsg.CHATTYPE_GROUP = 1;//群组会话

2.获取消息的类型

msg.getChatType()
ChatRoomRichMsg.CHATROOMRICHMSG_TYPE_RICH = 12;// 文本、表情
ChatRoomRichMsg.CHATROOMRICHMSG_TYPE_PIC = 0;
ChatRoomRichMsg.CHATROOMRICHMSG_TYPE_VOICE = 11;

3.获取富文本信息

/**
 * 获取动态显示的提示信息(包括图片),如果是文字则直接显示文字
 * ChatRoomRichMsg:封装的会话对象,接收会话的时候会获取到
 * @return
 */
msg.getTipHtml()

为了可以在界面中显示表情和文本信息,需要用到UIUtils的方法

TextView.setText(UIUtils.getTipCharSequence(msg.getTipHtml()));

4.获取图片信息的图片文件地址

msg.getPicPath()

5.获取语音信息的语音文件地址

msg.getVoicePath()

6.获取消息发送者编号

msg.getSender()

7.获取消息接收者编号

msg.getToUid()

8.获取消息接收的时间

msg.getMsgTime()
/**
 * 发送的消息状态改变:0发送中,1发送成功,2发送失败
 * 
 * @param msg
 */
public abstract void onSendStatusChanged(ChatRoomRichMsg msg);

接收到消息发送的状态变化,可以用来刷新界面以显示这个状态。


聊天记录

1.获取缓存中的聊天记录,uid表示聊天对方的编号,个人会话就是用户编号,群组会话是群组编号

EntboostCache.getChatMsgs(uid)

2.保存聊天记录到本地数据库

EntboostCache.saveChatCache()

3.加载本地聊天记录信息

个人会话和群组会话的加载方法不同,目前加载聊天记录还不支持分页加载。

EntboostCM.loadPersonChatDiscCache(uid)
EntboostCM.loadGroupChatDiscCache(did)


群组会话操作

群组操作大部分和个人会话类似,请参考个人会话操作


发送文本消息

/**
 * 给群组发送文本信息
 * 
 * @param sTo
 *            发送群组的ID
 * @param text
 *            文本信息
 */
EntboostCM. sendGroupText (sTo, text);
/**
 * 给群组发送文本信息
 * 
 * @param account
 *            发送群组的账号
 * @param text
 *            文本信息
 */
EntboostCM. sendGroupText (account, text);


发送表情

发送表情的方法与发送文本完全相同,其它需要注意的API与个人会话相同。

EntboostCM. sendGroupText (sTo, text);
EntboostCM. sendGroupText (account, text);


发送图片

/**
 * 给群组发送图片消息
 * 
 * @param sTo
 *            发送对方群组的ID
 * @param pic
 *            图片存放地址
 */
EntboostCM. sendGroupPic (sTo, pic);
/**
 * 给群组发送图片消息
 * 
 * @param account
 *            发送对方群组的账号
 * @param pic
 *            图片存放地址
 */
EntboostCM. sendGroupPic (account, pic);


发送语音

/**
 * 给群组发送语音信息
 * 
 * @param sTo
 *            发送对方群组的ID
 * @param voice
 *            语言文件存放地址
 */ 
EntboostCM. sendGroupVoice (sTo, voice);
/**
 * 给群组发送语音信息
 * 
 * @param account
 *            发送对方群组的账号
 * @param voice
 *            语言文件存放地址
 */ 
EntboostCM. sendGroupVoice (account, voice);


动态信息

动态信息主要用于动态信息列表的展示,显示用户接受的最新消息列表、应用信息列表等等。 所有的动态历史信息,都系统在运行过程中放入缓存的,例如聊天消息信息,系统通知信息等。


获取动态历史信息

EntboostCache.getHistoryMsgList()
//返回DynamicNews对象,我们可以从这个对象获取动态信息的标题、内容、未读消息数等等
EntboostCache.getUnreadNumDynamicNews()
//获取所有动态历史信息的未读数量。
dynamicNews.getNoReadNum() //未读数量
dynamicNews.getTitle() //标题
UIUtils.getTipCharSequence(dynamicNews.getContent()) //内容
dynamicNews.getTime() //时间


读取动态信息

dynamicNews.readAll();//表示动态信息的未读数量将置为0
EntboostCache.readMsg(Long sender)//表示指定的动态信息未读数量将置为0


清空所有动态信息

EntboostCache.clearAllMsgHistory();


联系人信息

添加联系人

/**
 * 添加联系人
 * 
 * @param contact 联系人帐号(邮箱地址、电话等)
 * @param group 分组名称
 * @param listener 编辑监听
 */
EntboostUM.addContact(contact, group, new EditContactListener() {

    @Override
    public void onFailure(String errMsg) {
        //TODO 添加失败
    }

    @Override
    public void onEditContactSuccess() {
        //TODO 添加成功
    }

});


编辑联系人

/**
 * 编辑联系人的备注名称和描述
 * 
 * @param contact  联系人帐号(邮箱地址、电话等)
 * @param name 联系人名称
 * @param description 联系人描述
 * @param listener 编辑监听
 */
EntboostUM.editContact(contact , name, description, new EditContactListener() {

    @Override
    public void onFailure(String errMsg) {
        //TODO 修改失败
    }

    @Override
    public void onEditContactSuccess() {
        //TODO 修改成功
    }

});


删除联系人

/**
 * 删除联系人
 * 
 * @param contact 联系人帐号(邮箱地址、电话等)
 * @param listener 编辑监听
 */
EntboostUM.delContact(contact, new DelContactListener() {

    @Override
    public void onFailure(String errMsg) {
        //TODO 删除失败
    }

    @Override
    public void onDelContactSuccess() {
    //TODO 删除成功
    }

});


移动联系人到其它分组

/**
 * 移动联系人到新的分組
 * 
 * @param contact 联系人帐号(邮箱地址、电话等)
 * @param newGroup 分组名称
 * @param listener 编辑监听
 */
EntboostUM.moveContact(contact, newGroup, new EditContactListener() {

    @Override
    public void onFailure(String errMsg) {
        //TODO 修改失败
    }

    @Override
    public void onEditContactSuccess() {
        //TODO 修改成功
    }

});

缓存操作

/**
 * 获取本地默认最后一次登陆的用户信息
 * @return
 */
EntboostCache.getLocalAccountInfo();
/**
 * 保存当前的缓存信息到本地
 */
EntboostCache.saveCache();
/**
 * 清空所有的动态信息
 */
EntboostCache.clearAllMsgHistory();
/**
 * 获取所有联系人信息
 * 
 * @return
 */
EntboostCache.getContactInfos();
/**
 * 获取所有个人群组信息
 * 
 * @return
 */
 EntboostCache.getPersonGroups();
/**
 * 获取所有群组成员信息
 * 
 * @return
 */
EntboostCache.getGroupMemberInfos();
/**
 * 获取所有历史信息列表
 * 
 * @return
 */
EntboostCache.getHistoryMsgList();
/**
 * 获取会话信息
 * 
 * @param to 会话对象的编号
 * @return
 */
EntboostCache.getChatMsgs(Long to)


接收监听

目前系统只有一个监听对象,注册后就可以接收所有系统下发的各种消息,例如服务器网络状况、即时消息的内容、各种系统通知等。

//系统监听的接口
public interface EntboostIMListenerInterface
//系统监听的默认实现
public class EntboostIMListener implements EntboostIMListenerInterface


注册与取消监听

注册有两种方式,一种是实现接口,一种是继承默认实现。下面介绍两种最常用的实现方式:

1.主界面注册监听接口

//一般在主界面中实现系统监听接口,或者为所有界面提供一个基类,在基类中实现接口,不同界面如果具体监听实现不同,可以覆盖接口,编辑特定界面的自定义内容
public class MainActivity extends Activity implements EntboostIMListenerInterface{…}
//注册监听
@Override
protected void onResume() {
    super.onResume();
    Entboost.addListener(this);
}
//取消监听
@Override
protected void onPause() {
    super.onPause();
    Entboost.removeListener(this);
}

2.实例化监听实现的对象

//实例化监听对象的好处在于不用实现所有的接口,可以根据需要覆盖特定的方法,也可以根据需要在任何地方注册和取消监听
Entboost.addListener(this.getClass().getName(), new EntboostIMListener() {…})
//取消监听
Entboost.removeListener(this.getClass().getName());


监听详细说明

public interface EntboostIMListenerInterface {

    /**
     * -103\-102错误,关闭Session后重连
     */
    public abstract void disConnect();

    /**
     * 网络恢复正常
     */
    public abstract void network();

    /**
     * 本地无网络
     */
    public abstract void localNoNetwork();

    /**
     * 服务器连接不上
     */
    public abstract void serviceNoNetwork();

    /**
     * 服务器即将停止服务
     */
    public abstract void serviceStop();

    /**
     * 修改在线状态
     */
    public abstract void onUserStateChange(MemberInfo pMemberInfo);

    /**
     * 获取完所有的群组成员信息(包括企业群组和个人群组)
     */
    public abstract void onLoadAllMemberInfo();

    /**
     * 获取所有联系人信息
     */
    public abstract void onLoadAllContactInfo();

    /**
     * 接收到用户发送的消息
     * 
     * @param msg
     */
    public abstract void onReceiveUserMessage(ChatRoomRichMsg msg);

    /**
     * 发送的消息状态改变:0发送中,1发送成功,2发送失败
     * 
     * @param msg
     */
    public abstract void onSendStatusChanged(ChatRoomRichMsg msg);

}


企业组织架构管理接口及相关说明

缓存操作

/**
 * 获取企业信息
 * 
 * @return
 */
EbEnterpriseCache.getEnterpriseInfo();
/**
 * 获取所有企业部门信息
 * 
 * @return
 */
EbEnterpriseCache.getDepartments();
/**
 * 获取所有群组成员信息
 * 
 * @return
 */
EbEnterpriseCache.getDepartmentMemberInfos()


注册用户

企业用户(邮箱)注册

/**
 * 企业用户邮箱注册,需要邮箱验证激活帐号,同一企业只能注册一个帐号,其它成员由管理员添加
 * 
 * @param app_id
 *            开发者ID
 * @param apppwd
 *            开发者密钥
 * @param email
 *            邮箱地址
 * @param sPwd
 *            帐号密码
 * @param sEnterpriseName
 *            企业名称
 * @param listener
 */		
EbEnterpriseUM.emailRegister(app_id, apppwd, email, sPwd, sEnterpriseName, new RegisterListener(){
    @Override
    public void onFailure(String errMsg) {
        //TODO 注册失败
    }

    @Override
    public void onRegisterSuccess() {
        //TODO 注册成功
    }
});


设置个人的默认部门编号

/**
 * 设置个人的默认部门编号
 * 
 * @param sNewDefaultMemberCode
 *            默认群组(部门)编号,用于在外部呼叫系统自动生成电子名片
 */
EbEnterpriseUM.setMyDefaultMemberCode(sNewDefaultMemberCode,new EditInfoListener(){

    @Override
    public void onFailure(String errMsg) {
        //TODO 修改失败
    }

    @Override
    public void onEditInfoSuccess() {
        //TODO 修改成功
    }

});


企业资料编辑

/**
 * 企业资料编辑
 * 
 * @param phone
 *            电话
 * @param fax
 *            传真
 * @param email
 *            企业邮箱
 * @param url
 *            企业网站
 * @param address
 *            企业地址
 * @param description
 *            企业描述
 * @param listener
 */
EbEnterpriseUM.updateEnterprise(phone, fax, email,url, address, description,new EditEntListener(){

    @Override
    public void onFailure(String errMsg) {
        //TODO 修改失败
    }

    @Override
    public void onEditEntSuccess() {
        //TODO 修改成功
    }

});


部门

添加企业部门

/**
 * 添加新的企业部门
 * 
 * @param dep_name
 *            部门名称
 * @param parent_code
 *            上级部门编号(为空表示添加顶级部门)
 * @param phone
 *            部门电话
 * @param fax
 *            部门传真
 * @param email
 *            部门邮箱
 * @param url
 *            部门网址
 * @param address
 *            部门地址
 * @param description
 *            部门描述
 * @param listener
 */
EbEnterpriseUM. addDepartment(dep_name, parent_code, phone, fax, email, url, address, description,new EditGroupListener(){

    @Override
    public void onFailure(String errMsg) {
        //TODO 修改失败
    }

    @Override
    public void onEditGroupSuccess(Long dep_code) {
        //TODO 修改成功
    }

});


编辑企业部门

/**
 * 编辑企业部门信息
 * 
 * @param dep_id
 *            部门编号
 * @param dep_name
 *            部门名称
 * @param parent_code
 *            上级部门编号(为空表示添加顶级部门)
 * @param phone
 *            部门电话
 * @param fax
 *            部门传真
 * @param email
 *            部门邮箱
 * @param url
 *            部门网址
 * @param address
 *            部门地址
 * @param description
 *            部门描述
 * @param listener
 */
EbEnterpriseUM. editDepartment(dep_id ,dep_name, parent_code, phone, fax, email, url, address, description,new EditGroupListener(){

    @Override
    public void onFailure(String errMsg) {
        //TODO 修改失败
    }

    @Override
    public void onEditGroupSuccess(Long dep_code) {
        //TODO 修改成功
    }

});


删除企业群组

/**
 * 删除企业群组(群组中还有成员则无法删除)
 * 
 * @param dep_id
 *            群组编号
 * @param listener
 */
EbEnterpriseUM. delDepartment(dep_id,new DelGroupListener(){

    @Override
    public void onFailure(String errMsg) {
        //TODO 删除失败
    }

    @Override
    public void onDelGroupSuccess(Long dep_code) {
        //TODO 删除成功
    }

});


部门成员

添加部门成员

/**
 * 添加新的部门雇员信息,同时创建雇员账号,如果是邮箱注册会发送注册邮件以便   	 * 激活帐号,目前只支持邮箱注册。
 * 
 * @param dep_code
 *            部门编号
 * @param emp_account
 *            部门成员帐号(邮箱、电话等)
 * @param username
 *            成员名称
 * @param listener
 */    
EbEnterpriseUM. addEmployer (dep_code, emp_account, username,new EditMemberListener (){

    @Override
    public void onFailure(String errMsg) {
        //TODO 修改失败
    }

    @Override
    public void onEditMemberSuccess(Long dep_code) {
        //TODO 修改成功
    }

});


编辑部门成员

/**
 * 编辑部门雇员信息
 * 
 * @param dep_code
 *            部门编号
 * @param emp_code
 *            成员编号
 * @param username
 *            成员名称
 * @param gender
 *            性别
 * @param birthday
 *            生日
 * @param job_title
 *            职称
 * @param job_position
 *            职位
 * @param cell_phone
 *            电话
 * @param fax
 *            传真
 * @param work_phone
 *            工作电话
 * @param email
 *            邮箱
 * @param address
 *            地址
 * @param description
 *            描述
 * @param manager_level 参考EB_MANAGER_LEVEL枚举类
 *            管理级别
 * @param listener
 */
EbEnterpriseUM. editEmployer (dep_code, emp_code, username, gender , birthday , job_title , job_position , 
cell_phone , fax , work_phone , email , address , description , manager_level , new EditMemberListener (){

    @Override
    public void onFailure(String errMsg) {
        //TODO 修改失败
    }

    @Override
    public void onEditMemberSuccess(Long dep_code) {
        //TODO 修改成功
    }

});

删除部门成员

/**
 * 删除部门成员信息,并删除成员账号
 * 
 * @param emp_code 成员编号
 * @param listener
 */
EbEnterpriseUM. delEmployer (emp_code,new DelMemberListener (){

    @Override
    public void onFailure(String errMsg) {
        //TODO 删除失败
    }

    @Override
    public void onDelMemberSuccess() {
        //TODO 删除成功
    }
});


成员调转部门

/**
 * 移动成员到另一个部门
 * 
 * @param dep_code
 *            部门编号
 * @param emp_code
 *            成员编号
 * @param listener
 */
EbEnterpriseUM. moveEmployer (dep_code, emp_code, new EditMemberListener (){

    @Override
    public void onFailure(String errMsg) {
        //TODO 修改失败
    }

    @Override
    public void onEditMemberSuccess(Long dep_code) {
        //TODO 修改成功
    }

});


联系人信息

编辑联系人

/**
 * 编辑联系人详细信息
 * 
 * @param contact
 *            联系人帐号
 * @param name
 *            名称
 * @param phone
 *            电话
 * @param email
 *            邮箱
 * @param address
 *            地址
 * @param description
 *            描述
 * @param company
 *            公司
 * @param job_title
 *            职位
 * @param fax
 *            传真
 * @param tel
 *            电话
 * @param url
 *            网址
 * @param listener
*/
EbEnterpriseUM. editContact (contact, name, phone,email, address, description, company,job_title, fax, tel, url ,new EditContactListener (){

    @Override
    public void onFailure(String errMsg) {
        //TODO 修改失败
    }

    @Override
    public void onEditContactSuccess() {
        //TODO 修改成功
    }

});