# 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); //更新登陆者信息 QDLanderInfo.getInstance().updateSp(loginInfo); } 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);//0:普通登录 32768 token登陆 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 ```