android 阿里直播,Android

创建用户实例及登录// 创建用户 manager

DPSPubEngine engine = DPSPubEngine.GetDPSEngine();

// 创建 1234 用户实例,异步,通过listener监听是否创建完成(内部会进行数据库初始化等操作)

engine.createDPSManager(“1234”, listener);

...

// 创建manager成功后,获取对应用户的Manger

DPSPubManager manager = engine.getDPSManager("1234");

DPSAuthService authService = manager.getAuthService();

authService.addListener(new DPSAuthListener() {

// 连接状态通知

@Override

public void onConnectionStatusChanged(DPSConnectionStatus aimConnectionStatus) {

Logger.i("OnConnectionStatusChanged " + aimConnectionStatus.toString());

}

// 登录失败回调

@Override

public void onGetAuthCodeFailed(int error_code, String error_msg) {

Logger.i("OnGetAuthCodeFailed " + s);

}

// 本地登录成功,可进入IM或其他业务UI

@Override

public void onLocalLogin() {

Logger.i("local login succeed");

}

// 被踢事件回调,message为被踢下线附带的信息

@Override

public void onKickout(String message) {

Logger.i("OnKickout " + message);

}

/**

* 其他端设备在(离)线情况

* @param type 事件类型(1:事件通知,包括上下线,2:状态通知,在线状态)

* @param deviceType 设备类型

* (0:default,1:web,2:Android,3:iOS,4:Mac,5:Windows,6:iPad)

* @param status 设备状态(1:上线或在线,2:下线或离线)

* @param time 时间(上线或下线时间)

*/

@Override

public void onDeviceStatus(int type, int deviceType, int status, long time) {

Logger.i("OnDeviceStatus changed:");

}

/**

* 下载资源cookie变更事件,仅当需要http下载资源时需要

* @param cookie 新cookie

*/

@Override

public void onMainServerCookieRefresh(String cookie) {

Logger.i("Cookie refreshed: " + cookie);

}

});

authService.login();

// 退出登录,当用户主动登出时调用,正常退出应用无需调用,下次启动可免登,内部自动刷新token

authService.logout();

IM相关:获取会话列表// 获取用户(1234)对应的 IM module 实例

AIMPubModule imModule = AIMPubModule.GetModuleInstance("1234");

// 获取会话服务

AIMPubConvService convService = imModule.getConvService();

if (convService == null) {

return;

}

// 获取100条会话列表

convService.listLocalConversationsWithOffset(0, 100, new AIMPubConvGetConvListener() {

@Override

public void onSuccess(final ArrayList arrayList) {

// 注:SDK 的回调均在单独的callback 线程,不能进行UI操作,也不能进行耗时的操作

new Handler(Looper.getMainLooper()).post(new Runnable() {

@Override

public void run() {

if (callback != null) {

callback.onSuccess(arrayList);

}

}

});

}

@Override

public void onFailure(DPSError aimError) {

Logger.e("Failed to get convs:" + aimError);

}

});

IM相关:创建会话// 获取用户(1234)对应的 IM module 实例

AIMPubModule imModule = AIMPubModule.GetModuleInstance("1234");

// 获取会话服务

AIMPubConvService convService = imModule.getConvService();

if (convService == null) {

return;

}

// 创建单聊

ArrayList uidlist = new ArrayList<>();

uidlist.add("1234"); // 自己的uid

uidlist.add("5678"); // 对方的uid

AIMPubConvCreateSingleConvParam param = new AIMPubConvCreateSingleConvParam();

param.uids = uidlist;

convService.createSingleConversation(param, new AIMPubConvCreateSingleConvListener() {

@Override

public void onSuccess(AIMPubConversation AIMPubConversation) {

// 创建成功

}

@Override

public void onFailure(DPSError DPSError) {

// 创建失败

}

});

// 创建群聊

AIMPubGroupService groupService = imModule.getGroupService();

if (groupService == null) {

return;

}

AIMPubGroupCreateGroupConvParam param = new AIMPubGroupCreateGroupConvParam();

param.userInfos = new ArrayList<>();

HashMap extension = new HashMap();

param.userInfos.add(new AIMPubGroupUserInfo(“12345”, “nick_name”, extension));

param.userInfos.add(new AIMPubGroupUserInfo("5678", "张三", null));

param.userInfos.add(new AIMPubGroupUserInfo("2233", "李四", null));

param.title = "群名称";

groupService.createGroupConversation(param, new AIMPubGroupCreateGroupConvListener() {

@Override

public void onSuccess(AIMPubConversation AIMPubConversation) {

// 创建群聊成功

}

@Override

public void onFailure(DPSError DPSError) {

// 创建群聊失败

}

});

IM相关:发送消息// 获取 MsgService

AIMPubModule imModule = AIMPubModule.GetModuleInstance(uid);

AIMPubMsgService msgService = imModule.getMsgService();

// 构造文本消息内容

AIMPubMsgTextContent textContent = new AIMPubMsgTextContent();

Date date = new Date();

textContent.text = "Hello " + date;

// 构造消息内容

AIMPubMsgContent msgContent = new AIMPubMsgContent();

msgContent.contentType = AIMMsgContentType.CONTENT_TYPE_TEXT;

msgContent.textContent = textContent;

// 构造消息

AIMPubMsgSendMessage sendMessage = new AIMPubMsgSendMessage();

sendMessage.content = msgContent;

sendMessage.receivers = conv.userids;

sendMessage.cid = conv.cid;

Logger.i("Send message begin");

msgService.sendMessage(sendMessage, new AIMPubMsgSendMsgListener() {

// 图片等多媒体消息的发送进度

@Override

public void onProgress(double progress) {

Logger.i("Send Message progress: " + progress);

}

// 消息发送成功

@Override

public void onSuccess(AIMPubMessage message) {

Logger.i("Send Message succeed");

}

// 消息发送失败

@Override

public void onFailure(DPSError aimError) {

Logger.i("Send Message failed:" + aimError);

}

});

IM相关:接收消息// 获取 MsgService

AIMPubModule imModule = AIMPubModule.GetModuleInstance(uid);

AIMPubMsgService msgService = imModule.getMsgService();

msgService.addMsgListener(new AIMPubMsgListener() {

@Override

public void onAddedMessages(final ArrayList arrayList) {

// 收到新消息的回调,可通过newMsg.type 区分是自己发送的,或在线/离线状态收到的消息

}

@Override

public void onRemovedMessages(ArrayList arrayList) {

// 消息被删除的回调

}

@Override

public void onStoredMessages(ArrayList arrayList) {

// 消息入库时的回调,如拉消息时,会存入本地数据库

// 可在该回调内进行消息的加工处理

}

});

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值