LeanCloud Android 实时通信服务 搭建聊天

2023-10-05 14:42

本文主要是介绍LeanCloud Android 实时通信服务 搭建聊天,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Reference

  • https://leancloud.cn/docs/android_realtime_v2.html

  • https://github.com/leancloud/leanchat-android

一对一的文本聊天

。。。。。。。官网写得太详细了,还是看官网吧。。。。。。。

初始化

public class MyApplication extends Application{public void onCreate(){...AVOSCloud.initialize(this,"","");...}
}
<manifest>...<applicationandroid:name=".MyApplication"....>...<service android:name="com.avos.avoscloud.PushService" /><receiver android:name="com.avos.avoscloud.AVBroadcastReceiver"><intent-filter><action android:name="android.intent.action.BOOT_COMPLETED" /><action android:name="android.intent.action.USER_PRESENT" /></intent-filter></receiver>...</application></manifest>

登陆

AVIMClient imClient = AVIMClient.getInstance("Tom");
imClient.open(new IMClientCallback(){@Overridepublic void done(AVIMClient client, AVException e) {if (null != e) {// 出错了,可能是网络问题无法连接 LeanCloud 云端,请检查网络之后重试。// 此时聊天服务不可用。e.printStackTrace();} else {// 成功登录,可以开始进行聊天了(假设为 MainActivity)。Intent intent = new Intent(currentActivity, MainActivity.class);currentActivity.startActivity(intent);};}
});

建立对话

List<String> clientIds = new ArrayList<String>();
clientIds.add("Tom");
clientIds.add("Bob");// 我们给对话增加一个自定义属性 type,表示单聊还是群聊
// 常量定义:
// int ConversationType_OneOne = 0; // 两个人之间的单聊
// int ConversationType_Group = 1;  // 多人之间的群聊
Map<String, Object> attr = new HashMap<String, Object>();
attr.put("type", ConversationType_OneOne);imClient.createConversation(clientIds, attr, new AVIMConversationCreatedCallback() {@Overridepublic void done(AVIMConversation conversation, AVException e) {if (null != conversation) {// 成功了,这时候可以显示对话的 Activity 页面(假定为 ChatActivity)了。Intent intent = new Intent(this, ChatActivity.class);Intent.putExtra(“conversation”, conversation);startActivity(intent);}}
});

发送消息&接受消息

AVIMMessage message = new AVIMMessage();
message.setContent("hello");
conversation.sendMessage(message, new AVIMConversationCallback() {@Overridepublic void done(AVException e) {if (null != e) {// 出错了。。。e.printStackTrace();} else {Logger.d("发送成功,msgId=" + message.getMessageId());}}
});
// 自定义消息响应类
class CustomMessageHandler extends AVIMMessageHandler {@Overridepublic void onMessage(AVIMMessage message, AVIMConversation conversation, AVIMClient client) {// 新消息到来了。在这里增加你自己的处理代码。String msgContent = message.getContent();Logger.d(conversation.getConversationid() + " 收到一条新消息:" + msgContent);}
}// application 的初始化部分
public void onCreate(){...AVOSCloud.initialize(this,"","");AVIMMessageManager.registerDefaultMessageHandler(new CustomMessageHandler());...
}// 用户登录部分
AVIMClient imClient = AVIMClient.getInstance("Bob");
imClient.open(new IMClientCallback(){@Overridepublic void done(AVIMClient client, AVException e) {if (null != e) {// 出错了,可能是网络问题无法连接 LeanCloud 云端,请检查网络之后重试。// 此时聊天服务不可用。e.printStackTrace();} else {// 成功登录,可以开始进行聊天了。};}
});

退出登录

AVIMClient.close(final AVIMClientCallback callback)

这篇关于LeanCloud Android 实时通信服务 搭建聊天的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/151418

相关文章

使用Python和OpenCV库实现实时颜色识别系统

《使用Python和OpenCV库实现实时颜色识别系统》:本文主要介绍使用Python和OpenCV库实现的实时颜色识别系统,这个系统能够通过摄像头捕捉视频流,并在视频中指定区域内识别主要颜色(红... 目录一、引言二、系统概述三、代码解析1. 导入库2. 颜色识别函数3. 主程序循环四、HSV色彩空间详解

一文详解如何在idea中快速搭建一个Spring Boot项目

《一文详解如何在idea中快速搭建一个SpringBoot项目》IntelliJIDEA作为Java开发者的‌首选IDE‌,深度集成SpringBoot支持,可一键生成项目骨架、智能配置依赖,这篇文... 目录前言1、创建项目名称2、勾选需要的依赖3、在setting中检查maven4、编写数据源5、开启热

OpenCV实现实时颜色检测的示例

《OpenCV实现实时颜色检测的示例》本文主要介绍了OpenCV实现实时颜色检测的示例,通过HSV色彩空间转换和色调范围判断实现红黄绿蓝颜色检测,包含视频捕捉、区域标记、颜色分析等功能,具有一定的参考... 目录一、引言二、系统概述三、代码解析1. 导入库2. 颜色识别函数3. 主程序循环四、HSV色彩空间

SpringBoot服务获取Pod当前IP的两种方案

《SpringBoot服务获取Pod当前IP的两种方案》在Kubernetes集群中,SpringBoot服务获取Pod当前IP的方案主要有两种,通过环境变量注入或通过Java代码动态获取网络接口IP... 目录方案一:通过 Kubernetes Downward API 注入环境变量原理步骤方案二:通过

如何搭建并配置HTTPD文件服务及访问权限控制

《如何搭建并配置HTTPD文件服务及访问权限控制》:本文主要介绍如何搭建并配置HTTPD文件服务及访问权限控制的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、安装HTTPD服务二、HTTPD服务目录结构三、配置修改四、服务启动五、基于用户访问权限控制六、

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

pytest+allure环境搭建+自动化实践过程

《pytest+allure环境搭建+自动化实践过程》:本文主要介绍pytest+allure环境搭建+自动化实践过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、pytest下载安装1.1、安装pytest1.2、检测是否安装成功二、allure下载安装2.

使用vscode搭建pywebview集成vue项目实践

《使用vscode搭建pywebview集成vue项目实践》:本文主要介绍使用vscode搭建pywebview集成vue项目实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录环境准备项目源码下载项目说明调试与生成可执行文件核心代码说明总结本节我们使用pythonpywebv

RabbitMQ工作模式中的RPC通信模式详解

《RabbitMQ工作模式中的RPC通信模式详解》在RabbitMQ中,RPC模式通过消息队列实现远程调用功能,这篇文章给大家介绍RabbitMQ工作模式之RPC通信模式,感兴趣的朋友一起看看吧... 目录RPC通信模式概述工作流程代码案例引入依赖常量类编写客户端代码编写服务端代码RPC通信模式概述在R

在Spring Boot中实现HTTPS加密通信及常见问题排查

《在SpringBoot中实现HTTPS加密通信及常见问题排查》HTTPS是HTTP的安全版本,通过SSL/TLS协议为通讯提供加密、身份验证和数据完整性保护,下面通过本文给大家介绍在SpringB... 目录一、HTTPS核心原理1.加密流程概述2.加密技术组合二、证书体系详解1、证书类型对比2. 证书获