Android即时通讯——融云——基本环境搭建(坑很多)
来源:互联网 发布:剑雨江湖数据晋级 编辑:程序博客网 时间:2024/05/16 12:57
进入官网,注册
http://www.rongcloud.cn/
进入控制台,创建应用
点击下载区
点击IMKit SDK下载
得到这样一个压缩包
Rong_Cloud_Android_IMKit_SDK_v2_8_24_Dev_fdc48.zip
新建一个安卓项目(如果自信直接在项目中引入也可以),左上角file new import module 先后import IMLib,IMKit,当前前提是你把这两个先解压出来。在你import的过程中,可能会提示你需要更新build tools reversion ,点击更新就是了
接下来项目是这样的
在你的app module下添加依赖
compile project(':IMKit')
打开 IMLib Module 的 AndroidManifest.xml 文件,把 meta-data RONG_CLOUD_APP_KEY 的值修改为您自己的 AppKey. 如图:
在应用的 App Module 的 AndroidManifest.xml 文件中,添加 FileProvider 相关配置,修改 android:authorities 为 “您的应用的包名称.FileProvider”。应用包名就是com.后面什么什么的比如我的com.example.test
<provider android:name="android.support.v4.content.FileProvider" android:authorities="您的应用包名.FileProvider" android:exported="false" android:grantUriPermissions="true"> <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/rc_file_path" /></provider>
初始化
新建一个App类,继承自Application,并在配置文件中声明
android:name=".App">
public class App extends Application { @Override public void onCreate() { super.onCreate(); /** * OnCreate 会被多个进程重入,这段保护代码,确保只有您需要使用 RongIM 的进程和 Push 进程执行了 init。 * io.rong.push 为融云 push 进程名称,不可修改。 */ if (getApplicationInfo().packageName.equals(getCurProcessName(getApplicationContext())) || "io.rong.push".equals(getCurProcessName(getApplicationContext()))) { /** * IMKit SDK调用第一步 初始化 */ RongIM.init(this); } ItheimaHttp.init(this, "http://api.cn.ronghub.com"); } /** * 获得当前进程的名字 * * @param context * @return 进程号 */ public static String getCurProcessName(Context context) { int pid = android.os.Process.myPid(); ActivityManager activityManager = (ActivityManager) context .getSystemService(Context.ACTIVITY_SERVICE); for (ActivityManager.RunningAppProcessInfo appProcess : activityManager .getRunningAppProcesses()) { if (appProcess.pid == pid) { return appProcess.processName; } } return null; }}
获取Token
进入控制台,进入你的应用,
点击左侧的API调试。
选中第一项,token
拉到下面把3条信息输入一下就可以获取token了。
最后,在你的MainActivity中请求一下,把你刚刚获得的token 放进去,看看输出的userId如果是你刚刚在获取tokne的时候输入的userId,就说明连接成功了。
if (getApplicationInfo().packageName.equals(App.getCurProcessName(getApplicationContext()))) { RongIM.connect(token, new RongIMClient.ConnectCallback() { @Override public void onTokenIncorrect() { } @Override public void onSuccess(String userid) { Log.i("xbh",userid); } @Override public void onError(RongIMClient.ErrorCode errorCode) { } });}
搞了一半,发现还是LeanCloud好。
- Android即时通讯——融云——基本环境搭建(坑很多)
- 即时通讯——ActiveMQ环境搭建
- Android第一讲——基本框架、环境搭建
- Android开发基本环境搭建——IDE
- Android之即时通讯(一)----环境搭建
- Android深入浅出系列之Android开发环境搭建—Android开发环境搭建JDK(一)
- Android深入浅出系列之Android开发环境搭建—Android开发环境搭建Eclipse(二)
- Openfire + Smack 即时通讯(一)环境搭建
- Android视频通话(即时通讯)推荐—语音视频
- 即时通讯-ActiveMQ环境搭建
- 即时通讯——XMPP
- 黑马程序员——Java基本开发环境搭建
- 安卓开发日记1——基本环境搭建
- Android开发环境搭建(二) —Android开发环境建立
- 1、kvm基础篇—环境搭建及基本使用
- 搭建即时通讯服务器——openfire部署(源代码和二次开发)
- Android开发环境搭建(二)——基于Eclipse的开发环境搭建
- Android开发环境搭建(二)——基于Eclipse的开发环境搭建
- Linux修改文件属性及权限
- HTML CSS基础详解
- Linux Hadoop的编译及安装
- 使用caffe fine-tune一个单标签图像分类模型
- #写一个脚本实现如下功能: 输入一个数字,然后运行对应的>一个命令。显示命令如下:*cmd meau** 1—date 2–ls 3–who 4–pwd #当输入1时,会运行date, 输入2
- Android即时通讯——融云——基本环境搭建(坑很多)
- Sublime Text 3编译运行并调试C、C++、Python
- 使用caffe训练一个多标签分类/回归模型
- 可扩展的后台管理系统框架
- Spring框架jar包作用、依赖分析
- 后台开发基本JS技能练习
- tensorflow实例(1)--变量、常量的定义与使用
- Java并发编程-如何终止线程
- 文件备份-Python3对文件夹下所有文件进行压缩处理