# 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
```