SealTalk-Android

Android 应用 SealTalk 由 融云 RongCloud 出品。

特别注意

SealTalk 自从 1.3.14 版本起,CallLib 模块引用的音视频引擎已替换成 RTC 3.0,与之前的版本不互通。详细内容请参考官网的

特点

Android iOS Web 多端互通,如果需要你的产品也可以这样实现。

地理位置,位置共享功能。

完整的好友体系代码示例。

完整的群组功能代码示例。

单聊,群组,聊天室多种社交场景满足你的需求,如果还想要 视频直播 都可以。

一行代码搞定 客服? 你没有听错,比你想象的还要简单。

运行 SealTalk-Android

替换 SealTalkUrl.java 中的 DOMAIN 常量值为您所部署的 SealTalk 服务地址。

public class SealTalkUrl {

public static final String DOMAIN = 这里请替换为您所部署的 SealTalk Server 地址;

替换 IMManager.java 中,init 方法中调用融云初始化的代码 RongIM.init 替换为您所申请的融云 AppKey。

private void initRongIM(Context context) {

...

// 可在初始 SDK 时直接带入融云 IM 申请的APP KEY

RongIM.init(context, 这里请替换为您的融云 AppKey, true);

若使用第三方推送,请参考 IMManager.java 中 initPush 方法,打开注释并替换成您申请的各平台的推送信息

/**

* 初始化推送

*/

private void initPush() {

/*

* 配置 融云 IM 消息推送

* 根据需求配置各个平台的推送

* 配置推送需要在初始化 融云 SDK 之前

*/

//PushConfig config = new PushConfig

// .Builder()

// .enableHWPush(true) // 在 AndroidManifest.xml 中搜索 com.huawei.hms.client.appid 进行设置

// .enableMiPush("替换为您的小米推送 AppId", "替换为您的小米推送 AppKey")

// .enableMeiZuPush("替换为您的魅族推送 AppId", "替换为您的魅族推送 AppKey")

// .enableVivoPush(true) // 在 AndroidManifest.xml 中搜索 com.vivo.push.api_key 和 com.vivo.push.app_id 进行设置

// .enableFCM(true) // 打开 build.gradle 和 AndroidManifest.xml 中的相关注释,并在 google-services.json 文件中进行配置

// .build();

//RongPushClient.setPushConfig(config);

}

若您要接入 FCM 推送,需要做以下几步工作:

打开 AndroidManifest.xml 解除掉以下注释。

在 build.gradle 中解除以下注释

//apply plugin: 'com.google.gms.google-services'

...

//api 'com.google.firebase:firebase-messaging:17.6.0'

...

*

编译 google-services.json 配置为您的 FCM 推送相关配置参数

若使用地图相关功能,在 AndroidManifest.xml 中搜索 com.amap.api.v2.apikey 修改为您的高德地图 ApiKey

若使用微信相关功能,请替换 WXManager.java 中 APP_ID 为您申请的 AppId

public class WXManager {

private static final String TAG = "WXManager";

private static final String APP_ID = "替换为您的微信开放平台 AppId";

备注:

SealTalk Server 源码可以参考这里

Gif

新增红包

强大的全局搜索

单人、多人音视频

客服/机器人服务

群组

APK

SDK 集成说明

关于 SealTalk 2.0

SealTalk 2.0 重构了内部逻辑实现,整体代码将更清晰易读。使用 LiveData + ViewModel + Retrofit 2.0 + Room 等框架基于 MVVM 模式进行开发。

由于 DataBinding 存在调试难, 并要在 XML 编写等问题, 所以经过讨论之后, 决定弃用DataBinding.

架构图

Ativity/Fragment 作为 View 层, 负责界面显示和事件交互.

UserInfoViewModel 等为 ViewModel 层. 连接 View 和 Model 的桥梁, 数据通过 LiveData 返回. ViewModel 可通过调用不同的 Task 来获取不同的数据源.

Task 层即为 Repository . 根据不同的接口或数据属性, 分别封装了不同的 Task, 例如关于 User 的数据操作就封装在了 UserTask 中. 这样功能模块职能清晰并复用性高. 所有数据请求等只需编写一次即可.

Service 和 Dao 是分别请求网络数据和数据库数据操作. 分别使用了 Retrofit 和 Room 的依赖库.

数据请求流程

在新版中也对数据的请求机制做了信息设计处理. 请求数据分为三种.

网络请求需要缓存的

网络请求且不需要缓存的

数据库直接查询的

需要网络请求并需要缓存的

在 Task 层首先会查询数据库, 然后返回当前数据库中的缓存数据, 此数据用于请求网络时, 页面友好展示. 然后再请求服务器,获取最新数据, 获取数据成功后会把新数据保存至数据库, 最后再进行一次数据库查询, 获取数据库中的最新数据. 此机制虽然烦琐, 但极大的保证了界面展示的数据于最新数据的一致性.

网络请求且不需要缓存的

Task 直接进行网络请求并返回数据.

数据库直接查询的

运行环境

Android Studio 3.2 以上版本 SealMic 适配了 Android X,所以需要 使用 3.2 以上版本的 Android Studio 才能保证可以正常编译和使用。代码中有地方可能报红色错误, 不影响编译运行. 推荐使用真实 Android 设备 部分模拟器会存在功能缺失或运行环境不稳定等情况影响使用体验。

TargetVersion 版本需 26 及以上版本

支持

比你想象的更强大, 敬请期待更多精彩!

java融云即时通开发流程,基于融云开发的 Android 版即时通讯(IM)应用程序相关推荐

  1. 使用php开发,基于swoole扩展开发的工具 swoole-crontab

    2019独角兽企业重金招聘Python工程师标准>>> 使用php开发,基于swoole扩展开发的工具 swoole-crontab https://www.oschina.net/ ...

  2. 小样本点云深度学习库_基于点云深度学习的点云数据集制作系统及方法与流程...

    本发明涉及测控技术领域,尤其涉及一种基于点云深度学习的点云数据集制作系统及方法. 背景技术: 深度学习网络模型一般都是基于64线单帧激光数据集进行.但64线激光器和单帧的限定,造成了工程应用中点云数据 ...

  3. anychat java_开发流程 · anychat_sdk_java_doc · 看云

    #### **开发流程** 在工程准备好了之后,只需简单的几步,即可实现基础的音视频通话. #### **1.初始化SDK** 加载资源,应用程序中只需要执行一次,其他的功能接口都必须在初始化之后才能 ...

  4. 天源迪科与阿里云发布联合解决方案,基于阿里云原生产品打造卓越的数字化采购平台

    天源迪科成立成立于1993年,二十多年来深耕电信运营商业务运营支撑软件和服务,并在此基础上持续投入研发,紧抓行业发展需求,大力发展云计算.大数据.人工智能.物联网等先进技术,实现业务领域向安全.政府. ...

  5. 云上拍客梨视频 基于阿里云的技术实践分享

    摘要: 梨视频大部分的业务都选择了阿里云,其中一个主要原因是阿里云提供基于钉钉群构建的24贴身技术支持,刘隽表示,这种服务模式可以更充分.高效的对接需求,快速得到反馈,这也让梨视频的同学有信心去尝试一 ...

  6. python django开发api_基于Django框架开发Restful api

    在上篇文章中,我们讲解了restful api的主要概念,让大家有初步的了解.这一篇中,我们将通过python的Django框架,来学习开发restful 架构的接口. 一. 开发环境 开发语言:Py ...

  7. android 服务端技术,移动应用服务器端开发(基于JSP技术)-2017 Android系统构架 Android系统构架.docx...

    Android系统构架 PAGE 1 目 录 TOC \o "1-3" \h \z \u 一.Android系统构架 1 二.Linux内核层 2 三.系统运行库层 3 (一)系统 ...

  8. 基于html5+的nativejs实现android蓝牙串口通讯

    ##开发工具 基于hbuilder打包的webapp. ##所需知识 了解基本的html,css,js,vue.js 了解原生android的开发 了解android蓝牙的开发 了解hbuilder的 ...

  9. java开发和基于asp.net开发有什么优越性?_java语言的入门开始介绍

    java编程语言是目前世界最流行的编程语言,它是在c++的基础上开发出来的语言,它取其精华去其糟粕让java语言具有功能强大和简单易用的特征. java具有:面对对象.分布式.健壮性.安全性.平台独立 ...

最新文章

  1. char型变量中能不能存储一个中文汉字?为什么?
  2. HDCMS导航高亮显示!解决办法
  3. TCP/IP三次握手与四次握手
  4. 阿里OSS对象存储,实现图片上传进度显示ProgressListener;
  5. 炫龙dd2——黑苹果10.14 Clover EFI文件共享
  6. MISRA C 2004
  7. 四种常见数据模型(维度模型、范式模型等)
  8. 云服务器ECS/EC2_转载
  9. 修复 iPhone X H5 底部安全区域定位按钮下内容穿透 BUG
  10. python服务器传输wav文件,Python处理wav文件(二进制文件读写)
  11. 统计年鉴 excel
  12. html简洁的错误页面设计,40个非常有创意的404错误页面设计
  13. IE浏览器官方下载合集
  14. spring boot基础简介
  15. 【Pytorch】tensor类型数据.squeeze()和.unsqueeze()函数的简明教程(一看就会)
  16. HR面试题(史上最全、持续更新、吐血推荐)
  17. 项目准时交付率提升至91% 鼎捷助力金石机器人击破经营困局
  18. 【bsauce读论文】2022-CCS-DirtyCred: Escalating Privilege in Linux Kernel
  19. 黑马JavaScript笔记(四)高级篇
  20. CSS单行文字和多行文字超出部分省略号显示

热门文章

  1. 和客户沟通中能让你加分的英语细节
  2. Lammps实现水分子在纳米颗粒球表面的吸附行为
  3. 洛谷 P1605 迷宫(DFS模板)
  4. Chino 操作系统开发日志 (1) - 为 IoT 而生
  5. 爬取全民K歌用户歌曲
  6. git如何忽略文件或者文件夹
  7. SAP:ZSD010 Download Requirements Plan Data
  8. 音频降噪的软件有哪些?快来看看这些软件
  9. hbase写入一段时间后变的越来越慢
  10. Windows 11最新版:任务管理器性能参数详解,什么是分页缓冲池和句柄