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);
    }
}


相关文章
|
3月前
|
JavaScript 前端开发 Java
[Android][Framework]系统jar包,sdk的制作及引用
[Android][Framework]系统jar包,sdk的制作及引用
96 0
|
20天前
|
Java Linux API
Android SDK
【10月更文挑战第21天】
51 1
|
30天前
|
程序员 开发工具 Android开发
Android|使用阿里云推流 SDK 实现双路推流不同画面
本文记录了一种使用没有原生支持多路推流的阿里云推流 Android SDK,实现同时推送两路不同画面的流的方法。
53 7
|
3月前
|
开发工具 Android开发
Android项目架构设计问题之SDK内部减少每次回调时的冗余判断逻辑如何解决
Android项目架构设计问题之SDK内部减少每次回调时的冗余判断逻辑如何解决
40 0
|
3月前
|
Java API 开发工具
Android项目架构设计问题之为SDK添加新的回调支持如何解决
Android项目架构设计问题之为SDK添加新的回调支持如何解决
25 0
|
1月前
|
存储 自然语言处理 机器人
实战揭秘:当RAG遇上企业客服系统——从案例出发剖析Retrieval-Augmented Generation技术的真实表现与应用局限,带你深入了解背后的技术细节与解决方案
【10月更文挑战第3天】随着自然语言处理技术的进步,结合检索与生成能力的RAG技术被广泛应用于多个领域,通过访问外部知识源提升生成内容的准确性和上下文一致性。本文通过具体案例探讨RAG技术的优势与局限,并提供实用建议。例如,一家初创公司利用LangChain框架搭建基于RAG的聊天机器人,以自动化FAQ系统减轻客服团队工作负担。尽管该系统在处理简单问题时表现出色,但在面对复杂或多步骤问题时存在局限。此外,RAG系统的性能高度依赖于训练数据的质量和范围。因此,企业在采用RAG技术时需综合评估需求和技术局限性,合理规划技术栈,并辅以必要的人工干预和监督机制。
105 3
|
3月前
|
数据采集 监控 测试技术
大型IM稳定性监测实践:手Q客户端性能防劣化系统的建设之路
本文以iOS端为例,详细分享了手 Q 客户端性能防劣化系统从0到1的构建之路,相信对业界和IM开发者们都有较高的借鉴意义。
138 2
|
1月前
|
人工智能 自然语言处理 搜索推荐
AI技术在智能客服系统中的应用与挑战
【9月更文挑战第32天】本文将探讨AI技术在智能客服系统中的应用及其面临的挑战。我们将分析AI技术如何改变传统客服模式,提高服务质量和效率,并讨论在实际应用中可能遇到的问题和解决方案。
259 65
|
21天前
|
人工智能 自然语言处理 搜索推荐
选型攻略 | 智能客服系统该怎么选?(好用的智能客服系统推荐)
智能客服系统的选型需要综合考虑渠道功能、系统性能、客服工作管理、客户管理以及成本效益等因素。目前合力亿捷推出的智能知识库,梳理海量知识,根据不同主题对知识进行分类,使其结构更清晰。
56 0
|
22天前
|
人工智能 自然语言处理 安全
AI技术在智能客服系统中的应用与挑战
【10月更文挑战第28天】本文将深入探讨人工智能(AI)技术在智能客服系统中的应用及其面临的挑战。我们将通过实例分析,了解AI如何改善客户服务体验,提高效率和降低成本。同时,我们也将关注AI在实际应用中可能遇到的问题,如语义理解、情感识别和数据安全等,并提出相应的解决方案。

热门文章

最新文章

下一篇
无影云桌面