2015-06-04 5 views
3

Я сделал демонстрацию для отправки изображения в приватный чат с помощью QuickBlox, я изо всех сил пытаюсь прикрепить изображение с сообщением чата, я просмотрел его документ и использовал приведенные ниже ссылки, не повезло Attach an imageИзображение не прилагается в quickblox для android

Мой код, как показано ниже:

chatMessage = new QBChatMessage(); 

sendButton = (Button) findViewById(R.id.chatSendButton); 
sendButton.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     final String messageText = messageEditText.getText().toString(); 
     if (TextUtils.isEmpty(messageText)) { 
      return; 
     } 

     // Send chat message 
     // 

     // send a message 
     // ... 
     int fileId = R.raw.ic_launcher; 
     InputStream is = ChatActivity.this.getResources() 
         .openRawResource(fileId); 
     File file = FileHelper.getFileInputStream(is, 
         "sample_file.png", "myFile"); 

     Boolean fileIsPublic = true; 

     QBContent.uploadFileTask(file, fileIsPublic, messageText, 
         new QBEntityCallbackImpl<QBFile>() { 
        @Override 
        public void onSuccess(QBFile qbFile, Bundle params) { 

         String publicUrl = qbFile.getPublicUrl(); 
         System.out 
             .println("==========image uploaded success++++++++" 
               + publicUrl); 

         id = qbFile.getId(); 

         System.out 
             .println("===================image id+++++++++++" 
               + id + ""); 

        } 

        @Override 
        public void onError(List<String> errors) { 
         System.out 
             .println("==========image uploaded Errors++++++++" 
               + errors.toString()); 

        } 
       }, new QBProgressCallback() { 
        @Override 
        public void onProgressUpdate(int progress) { 

        } 
       }); 
     QBAttachment atach = new QBAttachment("image"); 
       atach.setId(id+""); 


     ArrayList<QBAttachment> aryatch = new ArrayList<QBAttachment>(); 
     aryatch.add(atach); 
     chatMessage.setAttachments(aryatch); 
     chatMessage.setBody(messageText); 
     chatMessage.setProperty(PROPERTY_SAVE_TO_HISTORY, "1"); 
     chatMessage.setDateSent(new Date().getTime()/1000); 

     try { 
      chat.sendMessage(chatMessage); 
     } catch (XMPPException e) { 
      Log.e(TAG, "failed to send a message", e); 
     } catch (SmackException sme) { 
      Log.e(TAG, "failed to send a message", sme); 
     } 

     messageEditText.setText(""); 

     if (dialog.getType() == QBDialogType.PRIVATE) { 
      showMessage(chatMessage); 
     } 

    } 

}); 
+0

Получаете ли вы y при запуске этого кода? – Dejan

+0

@ DjDexter5GHz-Спасибо, поэтому uch для ответа, я теперь успешно загрузил image.but, я столкнулся с проблемой в том, чтобы замаскировать это изображение в chatmessage, Мой обновленный код, пожалуйста, проверьте. –

+0

Нет ошибок? Просто не присоединитесь? – Dejan

ответ

2

Ну ясно, где ошибка

ваш идентификатор является недействительным здесь

atach.setId(id+""); 

, потому что это будет! = Ноль только в OnSuccess блок uploadFileTask

Так правильный путь, чтобы направить все вложения логики внутри OnSuccess блок uploadFileTask

Поскольку эти запросы QuickBlox являются асинхронными

+0

Я работаю над быстрым чатом sdk, у меня проблема при работе с этим, я разместил вопрос по этому вопросу, вот ссылка http://stackoverflow.com/questions/34592262/send-image-using-quickblox -chat-sdk-android. Помощь Plz –

Смежные вопросы