前期准备
注册开发者帐号
开发者在集成融云即时通讯、实时网络能力前,需前往融云官方网站注册创建融云开发者帐号。
得到自己的AppKey
注:(您创建完应用后,首先需要了解的是 App Key / Secret,它们是融云 SDK 连接服务器所必须的标识,每一个 App 对应一套 App Key / Secret。针对开发者的生产环境和开发环境,我们提供两套 App Key / Secret,两套环境的功能完全一致。您在应用最终上线前,使用开发环境即可。)
然后下载如图融云IMKit SDK:
下载来解压打开内容如下,注意:本次只完成单聊界面,所以不需要其他的组件,只需要用到红框里的IMKit和IMLib。
接下来是SDK导入
以 Module 形式导入前面下载的融云 SDK 里面的各个组件。
打开您的工程, File -> New -> Import Module
将以下两个组件依次导入:
导入成功后进行关联:
打开应用的 build.gradle,在 dependencies 中添加相应模块的依赖:compile project(':IMKit')
如图:
打开 IMLib Module 的 AndroidManifest.xml 文件,把 meta-data RONG_CLOUD_APP_KEY 的值修改为您自己的 AppKey.
如图:
然后去融云控制界面获得token值
创建Application初始化建立连接:
新建类命名为App
public class App extends Application {
@Override
public void onCreate() {
super.onCreate();
RongIM.init(this); //初始化
}
}
在清单文件中添加:
android:name=".App"
然后新建ConversationActivity类加载聊天布局
public class ConversationActivity extends FragmentActivity {
@Override
public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState);
setContentView(R.layout.conversation);
}
}
ConversationActivity.xml:
<fragment
android:id="@+id/fragment_chat"
android:name="io.rong.imkit.fragment.ConversationFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
然后注册ConversationActivity:
然后在你想要进行聊天界面跳转的类中设置点击事件,这时之前获取的token值就有用了
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_person_page);
String token1 = "rbW1M3a2kTFlmiSna6F6uanP3sgRHLIipG/7iAV1kVlae3IDN/15hIl5INo2LEXGpAO/MxdP14Khdw8u5NV2+A==";
connect(token1);
}
private void connect(String token) {
RongIM.connect(token, new RongIMClient.ConnectCallback() {
@Override
public void onTokenIncorrect() {
Log.e("LoginActivity", "--onTokenIncorrect");
}
@Override
public void onSuccess(String userid) {
findViewById(R.id.chat).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(RongIM.getInstance() !=null){
RongIM.getInstance().startPrivateChat(PersonPageActivity.this,"123456","123456");
}
}
});
}
@Override
public void onError(RongIMClient.ErrorCode errorCode) {
Log.e("LoginActivity", "--onError");
}
});
}
}
注意这里用到之前的token值;
还有这两处是之前获取token值的时候设置的ID和用户名;
这个类的布局,设置个控件id就好了,
然后记得注册这个类
然后运行,效果如图咯: