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


相关文章
|
7月前
|
开发工具 Android开发
X Android SDK file not found: adb.安卓开发常见问题-Android SDK 缺少 `adb`(Android Debug Bridge)-优雅草卓伊凡
X Android SDK file not found: adb.安卓开发常见问题-Android SDK 缺少 `adb`(Android Debug Bridge)-优雅草卓伊凡
818 11
X Android SDK file not found: adb.安卓开发常见问题-Android SDK 缺少 `adb`(Android Debug Bridge)-优雅草卓伊凡
|
前端开发 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
917 20
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
|
JavaScript 前端开发 Java
[Android][Framework]系统jar包,sdk的制作及引用
[Android][Framework]系统jar包,sdk的制作及引用
574 0
|
程序员 开发工具 Android开发
Android|使用阿里云推流 SDK 实现双路推流不同画面
本文记录了一种使用没有原生支持多路推流的阿里云推流 Android SDK,实现同时推送两路不同画面的流的方法。
393 7
|
Java Linux API
Android SDK
【10月更文挑战第21天】
506 1
|
JavaScript Java Maven
云效产品使用常见问题之android sdk 构建出aar后,上传到私有maven仓库失败如何解决
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
安全 开发工具 Android开发
几个Flutter常见诊断错误与解决Android toolchain - develop for Android devices X Unable to locate Android SDK
几个Flutter常见诊断错误与解决Android toolchain - develop for Android devices X Unable to locate Android SDK
5143 0
|
开发工具 Android开发
解决Android运行出现NDK at /Library/Android/sdk/ndk-bundle did not have a source.properties file
解决Android运行出现NDK at /Library/Android/sdk/ndk-bundle did not have a source.properties file
1626 4
解决Android运行出现NDK at /Library/Android/sdk/ndk-bundle did not have a source.properties file
|
Dart 开发工具 Android开发
Android Studio导入Flutter项目提示Dart SDK is not configured
Android Studio导入Flutter项目提示Dart SDK is not configured
2158 4
|
开发工具 Android开发
Flutter: Android SDK not found at this location,Android Studio not found at xxx
Flutter: Android SDK not found at this location,Android Studio not found at xxx
887 2

热门文章

最新文章