如果在集成融云SDK报如下错误
是你的 manifest 少配置了聚合的 Activity
解决方案如下 :
1 在 manifest 中 配置 如下代码
android:name=”.activity.ConversationListActivity”
android:launchMode=”singleTask”
android:screenOrientation=”portrait”
android:windowSoftInputMode=”stateHidden|adjustResize”>
android:host=”io.rong.fast”
android:pathPrefix=”/conversationlist”
android:scheme=”rong” />
此处注意 host 包名改成自己工程包名
2 做 manifest 聚合的 java 类 参考代码如下
public class ConversationListActivity extends FragmentActivity {
private TextView mTitle;
private RelativeLayout mBack;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.conversationlist);
setActionBarTitle();
isReconnect();
}
/**
* 设置 actionbar 事件
*/
private void setActionBarTitle() {
mTitle = (TextView) findViewById(R.id.txt1);
mBack = (RelativeLayout) findViewById(R.id.back);
mTitle.setText(“会话列表”);
mBack.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
}
/**
* 判断消息是否是 push 消息
*/
private void isReconnect() {
Intent intent = getIntent();
String token = null;
if (DemoContext.getInstance() != null) {
token = DemoContext.getInstance().getSharedPreferences().getString(“DEMO_TOKEN”,”defult”);
}
//push或通知过来
if (intent != null && intent.getData() != null && intent.getData().getScheme().equals(“rong”)) {
//通过intent.getData().getQueryParameter(“push”) 为true,判断是否是push消息
if (intent.getData().getQueryParameter(“push”) != null
&& intent.getData().getQueryParameter(“push”).equals(“true”)) {
reconnect(token);
} else {
//程序切到后台,收到消息后点击进入,会执行这里
if (RongIM.getInstance() == null || RongIM.getInstance().getRongIMClient() == null) {
reconnect(token);
} else {
enterFragment();
}
}
}
}
/**
* 加载 会话列表 ConversationListFragment
*/
private void enterFragment() {
ConversationListFragment fragment = (ConversationListFragment) getSupportFragmentManager().findFragmentById(R.id.conversationlist);
Uri uri = Uri.parse(“rong://” + getApplicationInfo().packageName).buildUpon()
.appendPath(“conversationlist”)
.appendQueryParameter(Conversation.ConversationType.PRIVATE.getName(),”false”) //设置私聊会话是否聚合显示
.appendQueryParameter(Conversation.ConversationType.GROUP.getName(),”true”)
.appendQueryParameter(Conversation.ConversationType.DISCUSSION.getName(),”true”)
.appendQueryParameter(Conversation.ConversationType.SYSTEM.getName(),”true”)
.build();
fragment.setUri(uri);
}
/**
* 重连
*
* @param token
*/
private void reconnect(String token) {
if (“io.rong.fast”.equals(App.getCurProcessName(getApplicationContext()))) {
RongIM.connect(token,new RongIMClient.ConnectCallback() {
@Override
public void onTokenIncorrect() {
}
@Override
public void onSuccess(String s) {
enterFragment();
}
@Override
public void onError(RongIMClient.ErrorCode errorCode) {
}
});
}
}
}
布局文件代码如下:
android:layout_width=”match_parent”
android:layout_height=”match_parent”
android:orientation=”vertical”>
android:id=”@+id/conversationlist”
android:name=”io.rong.imkit.fragment.ConversationListFragment”
android:layout_width=”match_parent”
android:layout_height=”match_parent” />
配置完毕 即可解决 聚合会话列表的报错
总结
以上是编程之家为你收集整理的融云聚合会话报错的解决配置全部内容,希望文章能够帮你解决融云聚合会话报错的解决配置所遇到的程序开发问题。
如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
小编个人微信号 jb51ccc
喜欢与人分享编程技术与工作经验,欢迎加入编程之家官方交流群!