Android 接入udesk SDK实现IM

简介: Android 接入udesk SDK实现IM

步骤


1.账号注册



2.创建应用获得APP Id和App Key

20200416123104648.png

创建好之后可以获得应用的APP Id和App Key,这两个值是要在Android中配置的

20200416123212621.png

3.下载SDK


点击Android SDK使用教程,进入接口文档的页面

20200416123427834.png


点击GitHub的地址进入

20200416123720323.png


点击androidX 版本地址


20200416124001337.png


下载好之后解压到本地,然后找到UdeskSDKUI,这是这个SDK文件中的一个核心模块,下面还有一个视频的udeskvideo模块,用不到它。


20200416124205225.png


4.创建项目,导入UdeskSDKUI模块并配置


由于我是写一个Demo,所以我的命名是UdeskDemo,项目中的是AndroidX,gradle是5.4.1。项目创建完成之后,复制这个文件夹到你的工程的根目录下


20200416124811900.png


接下来配置这个模块


①配置build.gradle


打开app的build.gradle

20200416164623242.png

repositories {
    flatDir {
        dirs project(':UdeskSDKUI').file('libs')
    }
}
implementation project(':UdeskSDKUI')


②配置settings.gradle


打开工程根目录下的settings.gradle文件

在app后面加上,’:UdeskSDKUI’


20200416125244682.png


然后Sync同步一下,这里需要等待一段时间,因为模块中也是有很多依赖库文件需要下载同步配置,同步完成之后,你的模块就会是这样

20200416130340866.png


接下来来配置AndroidManifest.xml文件

  <!-- Required  一些系统要求的权限,如访问网络等-->
    <uses-permission android:name="${applicationId}.permission.JPUSH_MESSAGE" />
    <uses-permission android:name="android.permission.RECEIVE_USER_PRESENT" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"
        tools:ignore="ProtectedPermissions" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />


这时安装一下,确定你之前的步骤没有问题,然后再在MainActivity中进行模块代码的配置


5.配置代码并使用

package com.llw.udeskdemo;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.TextView;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
import cn.udesk.PreferenceHelper;
import cn.udesk.UdeskSDKManager;
import cn.udesk.config.UdeskConfig;
import udesk.core.UdeskConst;
public class MainActivity extends AppCompatActivity {
    private TextView tv_online_service;
    //替换成你们注册生成的域名
    private String UDESK_DOMAIN = "1593286.s3.udesk.cn";
    //替换成你们生成应用产生的appid
    private String AppId = "9d3a79847ba2c088";
    // 替换成你们在后台生成的密钥
    private String UDESK_SECRETKEY = "6b9ebea7645ad58a21919ac1e98eb745";
    String sdkToken = "";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        tv_online_service = (TextView)findViewById(R.id.tv_online_service);
        //传入注册的域名和密钥
        readAndWriteDomainAndKey();
        //获得Token
        if (TextUtils.isEmpty(sdkToken)) {
            sdkToken = UUID.randomUUID().toString();
        }
        //使用前需要设置的信息:
        UdeskSDKManager.getInstance().initApiKey(getApplicationContext(), UDESK_DOMAIN,
                UDESK_SECRETKEY, AppId);
        tv_online_service.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Map<String, String> info = new HashMap<String, String>();
                //sdktoken 必填**
                info.put(UdeskConst.UdeskUserInfo.USER_SDK_TOKEN, sdkToken);
                info.put(UdeskConst.UdeskUserInfo.NICK_NAME,"麻花藤");
                info.put(UdeskConst.UdeskUserInfo.CELLPHONE,"15651818750");
                //只设置用户基本信息的配置
                UdeskConfig.Builder builder = new UdeskConfig.Builder();
                builder.setDefualtUserInfo(info);
                //咨询会话
                UdeskSDKManager.getInstance().entryChat(getApplicationContext(), builder.build(), sdkToken);
            }
        });
    }
    private void readAndWriteDomainAndKey() {
        sdkToken = PreferenceHelper.readString(getApplicationContext(), "init_base_name", "sdktoken");
        PreferenceHelper.write(getApplicationContext(), "init_base_name", "sdktoken", sdkToken);
        PreferenceHelper.write(getApplicationContext(), "init_base_name", "domain", UDESK_DOMAIN);
        PreferenceHelper.write(getApplicationContext(), "init_base_name", "appkey", AppId);
        PreferenceHelper.write(getApplicationContext(), "init_base_name", "appid", UDESK_SECRETKEY);
    }
}


相关文章
|
1月前
|
前端开发 Java Shell
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
182 20
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
|
4月前
|
Java Linux API
Android SDK
【10月更文挑战第21天】
160 1
|
5月前
|
程序员 开发工具 Android开发
Android|使用阿里云推流 SDK 实现双路推流不同画面
本文记录了一种使用没有原生支持多路推流的阿里云推流 Android SDK,实现同时推送两路不同画面的流的方法。
104 7
|
7月前
|
JavaScript 前端开发 Java
[Android][Framework]系统jar包,sdk的制作及引用
[Android][Framework]系统jar包,sdk的制作及引用
186 0
|
7月前
|
开发工具 Android开发
Android项目架构设计问题之SDK内部减少每次回调时的冗余判断逻辑如何解决
Android项目架构设计问题之SDK内部减少每次回调时的冗余判断逻辑如何解决
60 0
|
5天前
|
人工智能 运维 Cloud Native
2025年国内工单系统推荐:技术架构、场景适配与行业实践
分析了智能化升级、大数据驱动、云原生架构及全渠道融合四大技术趋势,从功能适配性、易用性、集成能力、安全性和性价比五个维度指导企业选型,并推荐合力亿捷等三家系统的优劣对比,结合电商和制造行业的实际案例,帮助企业提升客户服务水平与竞争力。
45 11
2025年国内工单系统推荐:技术架构、场景适配与行业实践
|
6天前
|
人工智能 自然语言处理 算法
DeepSeek 大模型在合力亿捷工单系统中的5大应用场景解析
工单系统是企业客户服务与内部运营的核心工具,传统系统在分类、派发和处理效率方面面临挑战。DeepSeek大模型通过自然语言处理和智能化算法,实现精准分类、智能分配、自动填充、优先级排序及流程优化,大幅提升工单处理效率和质量,降低运营成本,改善客户体验。
41 2
|
8天前
|
人工智能 自然语言处理 算法
DeepSeek大模型在客服系统中的应用场景解析
在数字化浪潮下,客户服务领域正经历深刻变革,AI技术成为提升服务效能与体验的关键。DeepSeek大模型凭借自然语言处理、语音交互及多模态技术,显著优化客服流程,提升用户满意度。它通过智能问答、多轮对话引导、多模态语音客服和情绪监测等功能,革新服务模式,实现高效应答与精准分析,推动人机协作,为企业和客户创造更大价值。
80 5
|
20天前
|
机器学习/深度学习 存储 自然语言处理
从零开始构建基于DeepSeek的智能客服系统
在数字化时代,智能客服系统成为企业与客户沟通的重要桥梁。本文介绍如何使用PHP和DeepSeek技术构建智能客服系统,涵盖环境搭建、核心功能实现、多轮对话支持及电商客服案例。DeepSeek基于深度学习,能理解复杂意图并提供个性化服务,显著提升客户体验和运营效率。通过具体代码示例,帮助开发者从零开始构建强大智能客服系统。
|
20天前
|
缓存 自然语言处理 搜索推荐
深入优化基于DeepSeek的智能客服系统:从基础到高级
本文在上一篇构建的DeepSeek智能客服系统基础上,深入探讨了性能优化、用户体验提升和高级功能集成的方法。通过缓存机制、异步处理优化性能;利用情感分析、个性化回答提升用户体验;引入语音识别、知识图谱等高级功能增强智能化水平。结合具体案例与代码示例,帮助开发者打造更高效、智能的客服系统。

热门文章

最新文章