Page History

Home

Last edited by 谷俊

Android聊天SDK

一、产品概述

CNChat 3.0 Android SDK是视讯云推出的 Android平台上使用的软件开发工具包(SDK),负责聊天室的加入发消息等

二、运行环境

  • 支持 JDK 1.6 和 Android SDK version 14 以上系统。
  • 支持的cpu架构:armeabi, armeabi-v7a, arm64-v8a
  • Android SDK Build-tools请升级到21及以上版本。

三、引入资源包

eclipse

{project}/libs/libcnliveutil.jar
{project}/libs/libcnlivechat-tc.jar
{project}/app/src/main/jinLibs/armeabi-v7a/xxx.so
{project}/app/src/main/jinLibs/armeabi-v8a/xxx.so
{project}/app/src/main/jinLibs/armeabi/xxx.so

studio

compile 'com.cnlive:lib_cnutil:3.0.3'
compile 'com.cnlive:lib_cnchat_tc:3.0.1'

因为只提供了armeabi、armeabi-v7a和arm64-v8a这三种CPU架构的so库,所以在编译的时候,最好通过abiFilters把x86架构排除掉。

# build.gradle文件

buildTypes {
    release {
        ndk {
            // 需要将 x86 架构过滤掉
            abiFilters "armeabi", "armeabi-v7a", "arm64-v8a"
        }
    }

    debug {
        ndk {
            // 需要将 x86 架构过滤掉
            abiFilters "armeabi", "armeabi-v7a", "arm64-v8a"
        }
    }
}

四、系统权限

注意:Android 6.0以上的机型,其中一些权限需要在应用中手动申请。

eclipse 添加如下信息:

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.READ_LOGS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

五、配置AndroidMenifest文件

### eclipse 添加如下信息:
<!-- 【必须】消息收发service -->
<service
    android:name="com.tencent.qalsdk.service.QalService"
    android:exported="true"
    android:process=":QALSERVICE" >
</service>
<service  
    android:name="com.tencent.qalsdk.service.QalAssistService"  
    android:exported="false"
    android:process=":QALSERVICE" >
</service>   

<!-- 【必须】 离线消息广播接收器 -->
<receiver
    android:name="com.tencent.qalsdk.QALBroadcastReceiver"
    android:exported="false">
    <intent-filter>
        <action android:name="com.tencent.qalsdk.broadcast.qal" />
    </intent-filter>
</receiver>
<receiver 
    android:name="com.tencent.qalsdk.core.NetConnInfoCenter" android:process=":QALSERVICE">
    <intent-filter>
        <action android:name="android.intent.action.BOOT_COMPLETED" />
    </intent-filter>
    <intent-filter>
        <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
    </intent-filter>
   <intent-filter>
        <action android:name="android.intent.action.TIME_SET" />
    </intent-filter>
    <intent-filter>
        <action android:name="android.intent.action.TIMEZONE_CHANGED" />
    </intent-filter>     

    <intent-filter>
        <action android:name="com.tencent.qalsdk.service.TASK_REMOVED" />
    </intent-filter>
</receiver>

六、配置混淆

-dontwarn com.cnlive.libs.util.**
-keep class com.cnlive.libs.util.**{*;}
-keep class com.tencent.**{*;}
-dontwarn com.tencent.**
-keep class tencent.**{*;}
-dontwarn tencent.**
-keep class qalsdk.**{*;}
-dontwarn qalsdk.**

七、SDK初始化

public class CNLiveApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        //appid & appkey
        Config.init(this,"60_j07o9s9b65","dc1e76f87c7c2d83dcedb8a1204ec22fca3e156b21eb0d");
    }
}

八、使用方法

九、连接状态定义

十、回调状态码

十一、发送消息类型

type 含义
PRIVATE 发送私聊
CHATROOM 想聊天室发送消息

十二、接收消息体类型

CN_MSG_TYPE_VIDEO与CN_MSG_TYPE_UGC都是视频类型的消息,只是使用上有些区别,优先建议使用CN_MSG_TYPE_UGC

msgType 含义
CN_MSG_TYPE_TEXT 文本消息体
CN_MSG_TYPE_IMAGE 图片消息体
CN_MSG_TYPE_VOICE 语音消息体
CN_MSG_TYPE_VIDEO 视频消息体
CN_MSG_TYPE_UGC ugc视频消息体

十三、消息状态

status 含义
CN_MSG_STATUS_INVALID 非法值
CN_MSG_STATUS_SENDING 发送中
CN_MSG_STATUS_SEND_SUCCESS 发送成功
CN_MSG_STATUS_SEND_FAIL 发送失败
CN_MSG_STATUS_HAS_DELETED 已被标记为删除
CN_MSG_STATUS_LOCAL_IMPORTED 本地导入的消息
CN_MSG_STATUS_HAS_REVOKED 已经被撤回的消息