Android SDK 基础功能

SDK主要是QDClient提供对外的接口

1、登录功能

 /**
     * 登陆
     *
     * @param account 登录名
     * @param password 密码
     * @param address 服务器地址
     * @param port 服务器端口
     */
    loginLC(String account, String password, String address, int port, Context context) 
    /**
     * 登陆
     * @param account 登录名
     * @param password 密码
     * @param address 服务器地址
     * @param port 服务器端口
     * @param context 上下文
     * @param isEntry 密码是否加密(默认加密)
     */
    loginLC(String account, String password, String address, int port, Context context, boolean isEntry)
     /**
     * 登陆
     * @param params 登录参数
     */
    public void loginLC(QDLoginParams params) {
        service.loginLC(params);
    }

2、登录成功后的操作和登陆监听

登陆监听:QDLoginCallBack
在登陆界面的onCreate方法中添加
QDLoginCallBackManager.getInstance().setLoginCallBack(QDLoginCallBack callBack);
下面是一个登陆成功后的监听事例

    //登陆成功
    public void onLoginSuccess(final QDLoginInfo loginInfo) {
        
        //设置文件存放路径(客户可以根据自己需求设置)
        QDStorePath.getInstance().init(context, loginInfo.getUserID(), loginInfo.getSSID());
        //获取登陆者资源
        QDClient.getInstance().getUserResource();
        //设置登出为false
        QDClient.getInstance().setLogOut(false);
    }

    public void onLoginFailed(int errorCode, String errorMsg) {
              //登陆失败 dosomething 
    }

    public void onFetchGroup(boolean isSuccess, String errorMsg) {
           //获取群组结果(已弃用)
    }

    public void onFetchFriend(boolean isSuccess, String errorMsg) {
          //获取好友结果(已弃用)
    }

    public void onGetToken(boolean isSuccess, String webToken, long expiresTime, String errorMsg) {
        //获取webtoken(可以根据自己需求是否获取)
        if (isSuccess) {
            //设置webtoken和过期时间
            QDSDKConfig.getInstance().setWebToken(webToken);
            QDSDKConfig.getInstance().setWebValidity(expiresTime);
        } 
        //获取组织架构(如果没有获取token,在获取用户资源返回结果出获取)
        QDClient.getInstance().fetchDept();
    }

    public void onLoadingDept() {
        //正在获取组织架构 dosomething
    }

    public void onLoadingUserInfo() {
        //正在获取组织人员信息 dosomething
    }

    public void onComplete() {
        //登陆后所有操作全部成功
        //计算组织人员
        QDCompanyHelper.statUserCount();
        //跳转页面...
    }

    public void onLostConnect() {
    }

    public void onFetchUserInfo(boolean isSuccess, String errorMsg) {
        //获取webtoken(可以不获取)
        QDClient.getInstance().getWebToken();
        //获取组织架构(在不获取token的情况下调用)
        QDClient.getInstance().fetchDept();
    }

3、登陆参数

QDLoginParams

        QDLoginParams params = new QDLoginParams();
        params.setDomainName("Default"); //
        params.setPlatform(QDConst.PLATFORM_ANDROID);
                            params.setUpdatePlatform(QDConst.UPDATE_PLATFORM_ANDROID);
        params.setLoginFlag(0);//普通登录
        String ip = com.longchat.base.util.QDUtil.getIPAddress(context);
        params.setDeviceIP(ip);
        String deviceID = Build.SERIAL;
        StringBuffer sb = new StringBuffer();
        sb.append(deviceID).append(",")
                .append(Build.MANUFACTURER).append(" ").append(Build.MODEL).append(",")
                .append("android").append(Build.VERSION.RELEASE);
        params.setDeviceInfo(sb.toString());
        String version = "";
        try {
            version = context.getPackageManager().getPackageInfo(context.getPackageName(), 0).versionName;
        } catch (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
        }
        params.setClientVer(version);
        params.setServerIP(address); //服务器地址
        params.setServerPort(port); //服务器端口
        params.setLogin(account); //登陆名
        params.setPassword(password, QDConst.PWD_TYPE_ATEN);//登陆密码
        params.setPushType(pushType);//消息推送类型(1:华为,2:小米)
        params.setiPushID(pushId) //推送token