2017-04-24 101 views
0

当我点击发送按钮,它不发送任何消息 该计划为没有错误,请帮我解决这个问题。Im做对QuickBlox聊天应用程序项目,有一些疑虑

sendButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      QBChatMessage chatMessage = new QBChatMessage(); 
      chatMessage.setBody(edtContent.getText().toString()); 
      chatMessage.setSenderId(QBChatService.getInstance().getUser().getId()); 
      chatMessage.setSaveToHistory(true); 


      try { 
       qbChatDialog.sendMessage(chatMessage); 
      } catch (SmackException.NotConnectedException e) { 
       e.printStackTrace(); 
      } 

      QBChatMessagesHolder.getInstance().putMessage(qbChatDialog.getDialogId(), chatMessage); 
      ArrayList<QBChatMessage> messages = QBChatMessagesHolder.getInstance().getChatMessagesByDialogId(qbChatDialog.getDialogId()); 
      adapter = new ChatMessageAdapter(getBaseContext(), messages); 
      lstChatMessages.setAdapter(adapter); 
      adapter.notifyDataSetChanged(); 
+0

看到这个[问题](https://github.com/QuickBlox/quickblox-android-sdk/issues/77)在github上,它也有一个例子 –

+0

没有解决方案吗? – Kavin

回答

0

我在我的应用程序中使用了快速blox sdk。下面是发送消息的代码和它的工作正常。

private void sendChatMessage(String text) { 
    QBChatMessage chatMessage = new QBChatMessage(); 
    chatMessage.setBody(text); 
    chatMessage.setProperty(PROPERTY_SAVE_TO_HISTORY, "1"); 
    chatMessage.setDateSent(System.currentTimeMillis()/1000); 
    try { 
     if (Network.isNetworkConnected(ChatActivity.this)) { 
      chatDialog.sendMessage(chatMessage); 
      showMessage(chatMessage); 
      messageEditText.setText(""); 
      checkIfOpponentIsOnline(chatMessage.getBody()); 
     } else { 
      ToastUtil.showShortToast(ChatActivity.this, "Please check Internet connection and Try again"); 
     } 
    } catch (SmackException e) { 
     Log.e(TAG, "Failed to send a message", e); 
     ToastUtil.showShortToast(ChatActivity.this, R.string.chat_send_message_error); 
    } catch (Exception e) { 
     Log.e(TAG, "Failed to send a message", e); 
    } 
} 

如果仍然有问题,那么您必须检查Quickblox控制台上的dialogId和dialogUsers。一定有什么问题。检查对话框中是否存在用户。同时检查ChatService会议的原因,如果没有会话,你将无法发送任何消息。