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

相关文章

Nginx中配置使用非默认80端口进行服务的完整指南

《Nginx中配置使用非默认80端口进行服务的完整指南》在实际生产环境中,我们经常需要将Nginx配置在其他端口上运行,本文将详细介绍如何在Nginx中配置使用非默认端口进行服务,希望对大家有所帮助... 目录一、为什么需要使用非默认端口二、配置Nginx使用非默认端口的基本方法2.1 修改listen指令

SysMain服务可以关吗? 解决SysMain服务导致的高CPU使用率问题

《SysMain服务可以关吗?解决SysMain服务导致的高CPU使用率问题》SysMain服务是超级预读取,该服务会记录您打开应用程序的模式,并预先将它们加载到内存中以节省时间,但它可能占用大量... 在使用电脑的过程中,CPU使用率居高不下是许多用户都遇到过的问题,其中名为SysMain的服务往往是罪魁

Android 缓存日志Logcat导出与分析最佳实践

《Android缓存日志Logcat导出与分析最佳实践》本文全面介绍AndroidLogcat缓存日志的导出与分析方法,涵盖按进程、缓冲区类型及日志级别过滤,自动化工具使用,常见问题解决方案和最佳实... 目录android 缓存日志(Logcat)导出与分析全攻略为什么要导出缓存日志?按需过滤导出1. 按

解决若依微服务框架启动报错的问题

《解决若依微服务框架启动报错的问题》Invalidboundstatement错误通常由MyBatis映射文件未正确加载或Nacos配置未读取导致,需检查XML的namespace与方法ID是否匹配,... 目录ruoyi-system模块报错报错详情nacos文件目录总结ruoyi-systnGLNYpe

Java 与 LibreOffice 集成开发指南(环境搭建及代码示例)

《Java与LibreOffice集成开发指南(环境搭建及代码示例)》本文介绍Java与LibreOffice的集成方法,涵盖环境配置、API调用、文档转换、UNO桥接及REST接口等技术,提供... 目录1. 引言2. 环境搭建2.1 安装 LibreOffice2.2 配置 Java 开发环境2.3 配

Nginx进行平滑升级的实战指南(不中断服务版本更新)

《Nginx进行平滑升级的实战指南(不中断服务版本更新)》Nginx的平滑升级(也称为热升级)是一种在不停止服务的情况下更新Nginx版本或添加模块的方法,这种升级方式确保了服务的高可用性,避免了因升... 目录一.下载并编译新版Nginx1.下载解压2.编译二.替换可执行文件,并平滑升级1.替换可执行文件

Android Paging 分页加载库使用实践

《AndroidPaging分页加载库使用实践》AndroidPaging库是Jetpack组件的一部分,它提供了一套完整的解决方案来处理大型数据集的分页加载,本文将深入探讨Paging库... 目录前言一、Paging 库概述二、Paging 3 核心组件1. PagingSource2. Pager3.

深入浅出SpringBoot WebSocket构建实时应用全面指南

《深入浅出SpringBootWebSocket构建实时应用全面指南》WebSocket是一种在单个TCP连接上进行全双工通信的协议,这篇文章主要为大家详细介绍了SpringBoot如何集成WebS... 目录前言为什么需要 WebSocketWebSocket 是什么Spring Boot 如何简化 We

Python极速搭建局域网文件共享服务器完整指南

《Python极速搭建局域网文件共享服务器完整指南》在办公室或家庭局域网中快速共享文件时,许多人会选择第三方工具或云存储服务,但这些方案往往存在隐私泄露风险或需要复杂配置,下面我们就来看看如何使用Py... 目录一、android基础版:HTTP文件共享的魔法命令1. 一行代码启动HTTP服务器2. 关键参

Spring Boot 与微服务入门实战详细总结

《SpringBoot与微服务入门实战详细总结》本文讲解SpringBoot框架的核心特性如快速构建、自动配置、零XML与微服务架构的定义、演进及优缺点,涵盖开发环境准备和HelloWorld实战... 目录一、Spring Boot 核心概述二、微服务架构详解1. 微服务的定义与演进2. 微服务的优缺点三