前期準(zhǔn)備
注冊(cè)開發(fā)者帳號(hào)
開發(fā)者在集成融云即時(shí)通訊、實(shí)時(shí)網(wǎng)絡(luò)能力前,需前往融云官方網(wǎng)站注冊(cè)創(chuàng)建融云開發(fā)者帳號(hào)。
得到自己的AppKey??
注:(您創(chuàng)建完應(yīng)用后,首先需要了解的是 App Key / Secret,它們是融云 SDK 連接服務(wù)器所必須的標(biāo)識(shí),每一個(gè) App 對(duì)應(yīng)一套 App Key / Secret。針對(duì)開發(fā)者的生產(chǎn)環(huán)境和開發(fā)環(huán)境,我們提供兩套 App Key / Secret,兩套環(huán)境的功能完全一致。您在應(yīng)用最終上線前,使用開發(fā)環(huán)境即可。)

然后下載如圖融云IMKit SDK:

下載來解壓打開內(nèi)容如下,注意:本次只完成單聊界面,所以不需要其他的組件,只需要用到紅框里的IMKit和IMLib。

接下來是SDK導(dǎo)入
以 Module 形式導(dǎo)入前面下載的融云 SDK 里面的各個(gè)組件。
打開您的工程, File -> New -> Import Module

將以下兩個(gè)組件依次導(dǎo)入:

導(dǎo)入成功后進(jìn)行關(guān)聯(lián):

打開應(yīng)用的 build.gradle,在 dependencies 中添加相應(yīng)模塊的依賴:compile project(':IMKit')
如圖:?

打開 IMLib Module 的 AndroidManifest.xml 文件,把 meta-data RONG_CLOUD_APP_KEY 的值修改為您自己的 AppKey.?
如圖:

然后去融云控制界面獲得token值



創(chuàng)建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"/>
然后注冊(cè)ConversationActivity:

然后在你想要進(jìn)行聊天界面跳轉(zhuǎn)的類中設(shè)置點(diǎn)擊事件,這時(shí)之前獲取的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值的時(shí)候設(shè)置的ID和用戶名;

這個(gè)類的布局,設(shè)置個(gè)控件id就好了,

然后記得注冊(cè)這個(gè)類
然后運(yùn)行,效果如圖咯:
