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 | 已经被撤回的消息 |