首页 > 解决方案 > 如何通过在android中使用agora sdk在onFileMessageReceived中的给定路径中下载文件

问题描述

接收端代码

   @Override
                    public void onFileMessageReceivedFromPeer(RtmFileMessage rtmFileMessage, String s) {
                        runOnUiThread(() -> {
                            if (s.equals(toProfID)) {
                                // String path = context.getFilesDir().getAbsolutePath() + "/" + rtmFileMessage.getFileName();
                                final String cacheFile = getCacheFile(context, rtmFileMessage.getFileName());
                                Log.d("onFileMessageReceived", cacheFile);
                                RtmRequestId requestId = new RtmRequestId();
                                mRtmClient.downloadMediaToFile(
                                        rtmFileMessage.getMediaId(),
                                        cacheFile,
                                        requestId,
                                        new ResultCallback<Void>() {
                                            @Override
                                            public void onSuccess(Void aVoid) {
                                                massageList.add(0,new ChatItem(ChatItem.LayoutSix, "", rtmFileMessage.getFileName(), cacheFile, Time(), false));
                                                chatAdapter.notifyDataSetChanged();
                                                recyclerView_list.scrollToPosition(0);

                                            }

                                            @Override
                                            public void onFailure(ErrorInfo errorInfo) {
                                                Log.d("onFailure", "onFileMessageReceived" + errorInfo.toString());

                                            }
                                        }
                                );

                            }

                        });


                    }

路径如下

  public static String getCacheFile(Context context, String id) {
    File parent = new File(context.getCacheDir(), CACHE_DIR);
    if (!parent.exists()) {
        parent.mkdirs();
    }

    return new File(parent, id).getAbsolutePath();
}

无法从媒体 ID 下载此文件

**想下载recived文件。我打开这个文件是尊重甲酸盐的。.pdf 已打开,但实际上文件未打开。我不知道问题**

标签: androidagora.io

解决方案


使用此代码进行下载

   public static String getCacheFile(Context context, String id) {
    File parent = new File(context.getExternalFilesDir(Environment.DIRECTORY_DOCUMENTS),
            "YourAppDirectory");
    if (!parent.exists()) {
        parent.mkdirs();
    }

    return new File(parent, id).getAbsolutePath();
}

}


推荐阅读