注册

IM 接收图片后 监听失效

问了客服好久,一直没解决。上次发帖 官方给我的答复是 升级sdk ,我hh了

第一篇帖子:http://community.easemob.com/question/9125
 
情况举例:
------------------------------------------------------------
环信Demo给我发送文本"123456"
我触发接收监听
 
环信Demo给我发送文本"654321"
我触发接收监听
 
我给我环信Demo送文本"654321"
我触发 发送监听
 
环信Demo给我发送图片"aaa.png"
我触发接收监听
------问题来了-----
 
环信Demo给我发送文本"123456"
*我的接收监听没反应
 
我给环信Demo发文本"7777"
*我 发送监听没反应

环信Demo给我发送文本"123456"
*我的接收监听没反应
---------------------------------------------------------
然而每次重新进入程序时候,就会看见刚刚没反应的那几条其实已经 接收/发送 成功了
 

 
 
做个接收的demo,监听发送接收,成功handler 失败log。 看代码 
 

public class Main2Activity extends AppCompatActivity implements EMMessageListener, EMCallBack {
String TAG = "Main2Activity";

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
}

@Override
protected void onResume() {
super.onResume();
EMClient.getInstance().chatManager().addMessageListener(this);
}


public void send(View view) {
//创建一条文本消息,content为消息文字内容,toChatUsername为对方用户或者群聊的id,后文皆是如此
EMMessage message = EMMessage.createTxtSendMessage("发送的内容" + System.currentTimeMillis(), "suntest001");
message.setMessageStatusCallback(this);
EMClient.getInstance().chatManager().sendMessage(message);
}


@Override
protected void onStop() {
super.onStop();
EMClient.getInstance().chatManager().removeMessageListener(this);
}

Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case 1:
Log.e("handler", "1111111");
break;
case 2:
Log.e("handler", "2222222");
break;
}
}
};

/**
* 发送消息监听
*/
@Override
public void onSuccess() {
Log.e(TAG, "onSuccess ");
handler.sendEmptyMessage(1);
}

@Override
public void onError(int i, String s) {
Log.e(TAG, "onError " + s);
}

@Override
public void onProgress(int i, String s) {
Log.e(TAG, "onProgress " + s + "---" + i);
}

/**
* 收到消息监听
*/
@Override
public void onMessageReceived(final List mes) {
Log.e(TAG, "收到消息:" + mes.toString());
handler.sendEmptyMessage(2);
}

@Override
public void onCmdMessageReceived(List messages) {
//收到透传消息
Log.e(TAG, "收到透传消息:" + messages.toString());

}

@Override
public void onMessageReadAckReceived(List messages) {
//收到已读回执
Log.e(TAG, "收到已读回执:" + messages.toString());

}

@Override
public void onMessageDeliveryAckReceived(List message) {
//收到已送达回执
Log.e(TAG, "收到已送达回执:" + message.toString());

}

@Override
public void onMessageChanged(EMMessage message, Object change) {
//消息状态变动
Log.e(TAG, "消息状态变动:" + change.toString());

}
}

初始化啥的都是按照官方来的 很是无奈
已邀请:

beyond - imgeek运营

在环信的回调参数中有一个是null,没有判断所以造成了exception,又由于是JNI中的调用所以跟普通异常的显示不太一样,不容易看出问题来源,这个问题我们会修改一下避免参数为null的情况。
建议你用环信的最新demo测试下,这边测试过 确实没有问题。中文的名称图片 发送没有问题 ,先发文字 再发图片 再发文字  再发图片 都是可以走发送成功的回调的。

要回复问题请先登录注册