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

相关文章

Android开发中gradle下载缓慢的问题级解决方法

《Android开发中gradle下载缓慢的问题级解决方法》本文介绍了解决Android开发中Gradle下载缓慢问题的几种方法,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录一、网络环境优化二、Gradle版本与配置优化三、其他优化措施针对android开发中Gradle下载缓慢的问

springboot的调度服务与异步服务使用详解

《springboot的调度服务与异步服务使用详解》本文主要介绍了Java的ScheduledExecutorService接口和SpringBoot中如何使用调度线程池,包括核心参数、创建方式、自定... 目录1.调度服务1.1.JDK之ScheduledExecutorService1.2.spring

Android 悬浮窗开发示例((动态权限请求 | 前台服务和通知 | 悬浮窗创建 )

《Android悬浮窗开发示例((动态权限请求|前台服务和通知|悬浮窗创建)》本文介绍了Android悬浮窗的实现效果,包括动态权限请求、前台服务和通知的使用,悬浮窗权限需要动态申请并引导... 目录一、悬浮窗 动态权限请求1、动态请求权限2、悬浮窗权限说明3、检查动态权限4、申请动态权限5、权限设置完毕后

TP-Link PDDNS服将于务6月30日正式停运:用户需转向第三方DDNS服务

《TP-LinkPDDNS服将于务6月30日正式停运:用户需转向第三方DDNS服务》近期,路由器制造巨头普联(TP-Link)在用户群体中引发了一系列重要变动,上个月,公司发出了一则通知,明确要求所... 路由器厂商普联(TP-Link)上个月发布公告要求所有用户必须完成实名认证后才能继续使用普联提供的 D

Android里面的Service种类以及启动方式

《Android里面的Service种类以及启动方式》Android中的Service分为前台服务和后台服务,前台服务需要亮身份牌并显示通知,后台服务则有启动方式选择,包括startService和b... 目录一句话总结:一、Service 的两种类型:1. 前台服务(必须亮身份牌)2. 后台服务(偷偷干

本地搭建DeepSeek-R1、WebUI的完整过程及访问

《本地搭建DeepSeek-R1、WebUI的完整过程及访问》:本文主要介绍本地搭建DeepSeek-R1、WebUI的完整过程及访问的相关资料,DeepSeek-R1是一个开源的人工智能平台,主... 目录背景       搭建准备基础概念搭建过程访问对话测试总结背景       最近几年,人工智能技术

微服务架构之使用RabbitMQ进行异步处理方式

《微服务架构之使用RabbitMQ进行异步处理方式》本文介绍了RabbitMQ的基本概念、异步调用处理逻辑、RabbitMQ的基本使用方法以及在SpringBoot项目中使用RabbitMQ解决高并发... 目录一.什么是RabbitMQ?二.异步调用处理逻辑:三.RabbitMQ的基本使用1.安装2.架构

Android kotlin语言实现删除文件的解决方案

《Androidkotlin语言实现删除文件的解决方案》:本文主要介绍Androidkotlin语言实现删除文件的解决方案,在项目开发过程中,尤其是需要跨平台协作的项目,那么删除用户指定的文件的... 目录一、前言二、适用环境三、模板内容1.权限申请2.Activity中的模板一、前言在项目开发过程中,尤

5分钟获取deepseek api并搭建简易问答应用

《5分钟获取deepseekapi并搭建简易问答应用》本文主要介绍了5分钟获取deepseekapi并搭建简易问答应用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需... 目录1、获取api2、获取base_url和chat_model3、配置模型参数方法一:终端中临时将加

Java中使用Java Mail实现邮件服务功能示例

《Java中使用JavaMail实现邮件服务功能示例》:本文主要介绍Java中使用JavaMail实现邮件服务功能的相关资料,文章还提供了一个发送邮件的示例代码,包括创建参数类、邮件类和执行结... 目录前言一、历史背景二编程、pom依赖三、API说明(一)Session (会话)(二)Message编程客