Android SDK Interface

接口总览

蜜蜂Android SDK接口(java),见右侧

public class UCError {
    public static enum ErrCode {
        ERR_LOGIN_EMPTY_PARAM,   
        ERR_LOGIN_ERROR_PARAM,  
        ERR_INVALID_USER_ID,
        ERR_INVALID_USER_TOKEN,
        ERR_SERVER_ERR
    }
    public int getErrCode();
    public String getError();

}

public class UCConfig {
public void setLogPath(String path);
public void setDebugMode(boolean isDebug);
public void setServerDomain(String serverDomain);
public void setConfig(UserConfig config);
}

class UCUserStatusListener {
    public void onSessionInvalid();
}

class UCLoginCallback {
    public void onSuccess();
    public void onError(UCCalendarError err);
}

class UCSDK {
    public static void init(UCConfig config);
    public static void addUserStatusListener(UCCalendarUserStatusListener listener);
    public static void login(String uid, String token, UCLoginCallback callback);
    public static void logout();
    public static void startSingleChat(Context context,int userId ,String title)
    public static void startGroupChat(Context context,int groupId ,String title)
    public static void startCloudChat(Context context,int groupId ,String title)
    public static void startConfereChat(Context context,int groupId,int eventId ,String title)
    public static void queryUserStatus(int[] userId, OnTaskFinishListener<List<UserStatusManager.UserStatus>> onTaskFinishListener)
    public static void queryTotalMsgCount()
}

初始化SDK

主工程配置

主工程的Application类继承MyApplication,并在AndroidManifest.xml的application节点设置name为该Application类名

初始化操作

在调用UCSDK.Login(xxx)登录前,调用UCSDK.init(UCConfig config)函数进行初始化操作。

UCConfig类的函数方法说明:
1) setLogPath 设置目录输出路径,参数为某个目录的绝对路径,如果不设置则默认为在SD卡/IM_SDK/log下,只保存3天的记录
2) setServerDomain 设置接口的域名地址(如果没有部署私有服务器则不用设置)
3) setDebugMode 设置是否为调试模式,true则接口请求测试环境,false则请求正式环境,默认为fasle
(注意如果setServerDomain函数被调用的话,则setDebugMode函数不起作用)
4) setConfig 设置用户角色功能权限,默认全部包含。

具体权限见右侧

UserConfig类的权限说明

public int cloudDiskType;        // 云盘权限 
public int todoTaskType;        //土豆任务权限
public int imType;           //消息 
public int calendarType;        //日历 
public int confType;          //会议 
public int callType;          //呼 
public int appCenterType;        //应用中心 
public int appMomentsType;        //动态 
public int appScanType;          //扫一扫 
public int cloud_meeting;         //云会议 
public int meeting_room;          //视频会议室 
public int meeting_email_participant;    //会议邀请外部参会人权限 
public int document2;            //文件发送 
public int bbs_task_receive;         // 广播接收权限,接收端不需要处理 
public int conf_call_forward;         // 呼转电话开关 
public int pbx_call_forward;         // 呼转pbx开关  
public int trip_remind;           // 出行提醒 
public int broadcast_station;        // i广播通讯录入口显示权限 
public int chat;               //IM聊天 
public int hardware_video;           // 硬件视频属性 
public int hardware_box;            // 盒子开通属性 
public int join_conf_lync;           // 允许Lync入会

如果需要禁掉某项权限,则该属性值赋值为0,否则设置为2,当全部设置后,调用UCConfig.setConfig,然后调用UCSDK.init(UCConfig config)设置生效

登录认证

login

集成方在自己的APP登录成功后从集成方后台server获取了该用户账号对应的全时账号uid和token(uid和token集成方server如何获取请参考server接入说明)。

调用sdk提供的login接口,该接口方法为异步方法,callback方法返回登录结果

login Example见右侧

  UCSDK.login(uid, token,
         new UCLoginCallback(){
                  @Override
                  public void onSuccess() {
                           Log.d("登录全时日历服务器成功!");
                  }

                  @Override
                  public void onError(UCCalendarError err) {
                          Log.d("登录聊天服务器失败!" + err.getString());
                  }
});

注册账号有效性监听

在使用日历过程,可能会出现账户无效的情况,例如通信证过期, token更改,所以需要集成方收到相应的回调后重新登录认证

  UCSDK.addUserStatusListener(new UCUserStatusListener(){
                  @Override
                  public void onSessionInvalid() {
                           ...
                           UCSDK.getInstance().login(uid, token, ...
                  }
         });

登出

集成方App用户登出账号时需确保调用UCSDK.logout()同时登出

调起对应的功能界面

会话列表页面: SessionListFragment
通讯录页面: AddressBookFragment
通话记录页面: PhoneCallRecordActivity
办公页面: AppListActivity
云库够快页面: LibraryListActivity
日历页面: ConferenceCalendarActivity
扫一扫页面: CaptureActivity
设置页面: SettingsActivity
我: MeActivity

上述Activity可直接使用Intent调起,Fragment可嵌入Activity调起,具体可以参照示例工程的DemoActivity

打开具体的聊天窗口

单聊

见右侧示例

  /**
     * 开启单聊
     * @param context
     * @param userId
     *  对方用户Id
     * @param title
     *  聊天标题
     */
       UCSDK.startSingleChat(Context context,int userId ,String title)

群聊

见右侧示例

  /**
     * 开启群聊
     * @param context
     * @param groupId
     * 群聊Id
     * @param title
     * 聊天标题
     */
UCSDK.startGroupChat(Context context,int groupId ,String title)

文件库讨论组聊天

见右侧示例

Example

  /**
 * 开启文件库讨论
 * @param context
 * @param groupId
 * 文件库Id
 * @param title
 * 聊天标题
 */
UCSDK.startCloudChat(Context context,int groupId ,String title)

会议聊天

见右侧示例

  /**
 * 开启会议聊天
 * @param context
 * @param groupId
 * 会议关联的群Id
 * @param eventId
 * 会议的eventId
 * @param title
 * 聊天标题
 */
UCSDK.startConfereChat(Context context,int groupId,int eventId ,String title)

批量查询用户的当前状态

UCSDK.queryUserStatus(int[] userId, OnTaskFinishListener> onTaskFinishListener)

该函数为AsyncTask异步查询操作,查询成功后会在onPost方法中回调OnTaskFinishListener,将结果放在参数中,其中UserStatus包含了用户状态属性。

说明见右侧。

UserStatusManager.UserStatus用户状态类的权限说明:

public static class UserStatus{
        public UserStatus(int userID, PresenceType status) {
            this.userID = userID;
            this.status = status;
        }
        public int userID;
        public PresenceType status;
    }

userID为用户的Id,PresenceType为用户状态,具体有以下值
  Online(1),   //在线
  Busy(2),   //请勿打扰
  Away(3),   //离开
  Meeting(4),  //会议中
  Offline(5),  //离线
  Call(6),     //呼中
  Meeting_Phone(7), //电话会议
  Meeting_Ctrl(8),  //远程控制会议
  Tomato(9);    //番茄活动

消息未读数查询

集成方在首次调用打开消息列表时,需要主动调用一次UCSDK. queryTotalMsgCount()函数来查询本地数据库中的所有未读消息数,
查询结果会由广播BroadcastReceiver通知,用户只需注册action为“com.gnet.uc.action.newmsgnumber”的监听,从intent获取key为“extra_newmsg_num”的int类型值,
当程序运行期间,每当收到消息时,SDK都会发送该广播,以便集成方展示消息未读数,
示例工程中如下:
消息未读数

aar包说明

aar包说明  
MaterialDialog-release 基础组件
embedLib 够快资源
gokuai-release 够快
progress-widget-release 基础组件
mupdflibrary-release PDF类库
BottomSheet-release 基础组件
gokuaiLib-release 够快
TabIndicator-release 基础组件
PinnedHeaderListview-release 基础组件
WebSocket-release 通信组件
gnet_meeting 云会议
GNetTangSDKUI-release 云会议平台
imlib-release 公共聊天类库
tasksdk-release 土豆
baselib-release 公共工具类库
IM_SDK 蜜蜂SDK

results matching ""

    No results matching ""