
IM即时通讯
安全可靠、全球互通

实时音视频
流畅稳定、省钱省力
回答:
开发者客户以将图片发送到自己的服务器,具体步骤如下:
第一步:继承ConversationFragment,重写onImageResult,在这个方法里面获取到所选择的图片的URL集合
第二步:构造消息实例
ImageMessage imageMessage = ImageMessage.obtain(thumbPathUri, localPathUri); Message message = Message.obtain(targetId, conversationType, imageMessage);
第三步:发送图片:
/** * <p>发送图片消息,可以使用该方法将图片上传到自己的服务器发送,同时更新图片状态。</p> * <p>使用该方法在上传图片时,会回调 {@link io.rong.imlib.RongIMClient.SendImageMessageWithUploadListenerCallback} * 此回调中会携带 {@link RongIMClient.UploadImageStatusListener} 对象,使用者只需要调用其中的 * {@link RongIMClient.UploadImageStatusListener#update(int)} 更新进度 * {@link RongIMClient.UploadImageStatusListener#success(Uri)} 更新成功状态,并告知上传成功后的图片地址 * {@link RongIMClient.UploadImageStatusListener#error()} 更新失败状态 </p> * * @param message 发送消息的实体。 * @param pushContent 当下发 push 消息时,在通知栏里会显示这个字段。 * 如果发送的是自定义消息,该字段必须填写,否则无法收到 push 消息。 * 如果发送 sdk 中默认的消息类型,例如 RC:TxtMsg, RC:VcMsg, RC:ImgMsg,则不需要填写,默认已经指定。 * @param pushData push 附加信息。如果设置该字段,用户在收到 push 消息时,能通过 {@link io.rong.push.notification.PushNotificationMessage#getPushData()} 方法获取。 * @param callback 发送消息的回调,回调中携带 {@link RongIMClient.UploadImageStatusListener} 对象,用户调用该对象中的方法更新状态。 * {@link #sendImageMessage(Message, String, String, RongIMClient.SendImageMessageCallback)} */ RongIM.getInstance().sendImageMessage(message, pushContent, pushData, new RongIMClient.SendImageMessageWithUploadListenerCallback() { @Override public void onAttached(Message message, final RongIMClient.UploadImageStatusListener uploadImageStatusListener) { /*上传图片到自己的服务器*/ uploadImg(imgMsg.getPicFilePath(), new UploadListener() { @Override public void onSuccess(String url) { // 上传成功,回调 SDK 的 success 方法,传递回图片的远端地址 uploadImageStatusListener.success(Uri.parse(url)); } @Override public void onProgress(float progress) { //刷新上传进度 uploadImageStatusListener.update((int) progress); } @Override public void onFail() { // 上传图片失败,回调 error 方法。 uploadImageStatusListener.error(); } }); } @Override public void onError(Message message, RongIMClient.ErrorCode errorCode) { //发送失败 } @Override public void onSuccess(Message message) { //发送成功 } @Override public void onProgress(Message message, int progress) { //发送进度 } });
注意:SDK没有发送网络的图片接口,因为发送图片需要携带缩略图,如果不是本地图片,就没有办法得到缩略图。