android融云聊天ui,融云之单聊集成 - dahuig的个人页面 - OSCHINA - 中文开源技术交流社区...

特此声明 需要去 IMKit 工程里面 AndroidManifest.xml(清单文件)里面填写获取到的 融云AppKey值(这样可以聊天 发照片 语音 不能定位,定位需要自己写) [如有错误,请大家指正]

1.下载sdk IMKit 下载

2.将下载的sdk放入studio File-->Project struucture -->Module 依赖添加工程 3.在继承Application 中初始化 4.连接服务器(需要用到的Activity里面)在API调试里面获取token "NVqYP4aRusKqCD05dS7D1D5DvTAYKzdFvNaBCVbVbd8sfqh0YfEbFmVg1CnkkgkOnhR5PeoOv96HTeICP6532A==" 5.配置会话列表(创建ConversationActivity ) 6.在调用的Activity里面 调用的地方(监听)进行会话调用

//初始化

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);

}

}

/**

* 获得当前进程的名字

*

* @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;

}

}

关于初始化的注意事项

4.连接服务器(需要用到的Activity里面)

/**

建立与融云服务器的连接

@param token */ private void connect(String token) {

if (getApplicationInfo().packageName.equals(App.getCurProcessName(getApplicationContext()))) {

/**

* IMKit SDK调用第二步,建立与服务器的连接

*/

RongIM.connect(token, new RongIMClient.ConnectCallback() {

/**

* Token 错误,在线上环境下主要是因为 Token 已经过期,您需要向 App Server 重新请求一个新的 Token

*/

@Override

public void onTokenIncorrect() {

Log.d("LoginActivity", "--onTokenIncorrect");

}

/**

* 连接融云成功

* @param userid 当前 token

*/

@Override

public void onSuccess(String userid) {

Log.d("LoginActivity", "--onSuccess" + userid);

startActivity(new Intent(LoginActivity.this, MainActivity.class));

finish();

}

/**

* 连接融云失败

* @param errorCode 错误码,可到官网 查看错误码对应的注释

*/

@Override

public void onError(RongIMClient.ErrorCode errorCode) {

Log.d("LoginActivity", "--onError" + errorCode);

}

});

}

}

5.配置会话列表:(创建ConversationActivity ) public class ConversationActivity extends FragmentActivity {

/**

目标 Id */ private String mTargetId;

/**

* 刚刚创建完讨论组后获得讨论组的id 为targetIds,需要根据 为targetIds 获取 targetId

*/

private String mTargetIds;

/**

* 会话类型

*/

private Conversation.ConversationType mConversationType;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.conversation);

}

} 布局

android:id="@+id/conversation"

android:name="io.rong.imkit.fragment.ConversationFragment"

android:layout_width="match_parent"

android:layout_height="match_parent" />

在清单文件里面进行注册

android:host="io.rong.fast"

android:pathPrefix="/conversation/"

android:scheme="rong" />

6.在调用的Activity里面 调用的地方(监听)进行会话调用 /** * 启动单聊 * context - 应用上下文。 * targetUserId - 要与之聊天的用户 Id。 * title - 聊天的标题,如果传入空值,则默认显示与之聊天的用户名称。 */

if (RongIM.getInstance() != null) {

RongIM.getInstance().startPrivateChat(MainActivity.this, “2462″, “hello”);

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值