You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用react-native-fs下载视频至Android相册不显示的解决求助

解决React Native下载视频到Android相册不显示的问题

你的代码已经完成了文件下载,但Android相册不会自动识别新增的文件——尤其是自定义目录下的文件,必须主动通知系统媒体库扫描索引这个文件,才能在相册中显示。

解决方案步骤:

  1. 确保权限配置
    在android/app/src/main/AndroidManifest.xml中添加对应权限:

    • Android 9及以下:
      <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
      
    • Android 10及以上(适配分区存储):
      <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
      
  2. 修改下载代码,添加媒体库扫描
    下载完成后调用RNFS.scanFile()方法,通知系统索引新文件:

    import RNFS from 'react-native-fs';
    import { ToastAndroid } from 'react-native';
    
    const downloadRelfile = (fileUrl) => {
      let date = new Date();
      const url = fileUrl;
      const myAlbumPath = RNFS.PicturesDirectoryPath + '/Pictpath';
      
      RNFS.mkdir(myAlbumPath)
        .then(() => {
          const downloadD = `${myAlbumPath}/file_${Math.floor(date.getTime() + date.getSeconds() / 2)}.mp4`;
          return RNFS.downloadFile({
            fromUrl: url,
            toFile: downloadD,
          }).promise;
        })
        .then((res) => {
          console.log('File downloaded successfully', res);
          // 通知系统媒体库扫描新文件,让相册能识别到
          return RNFS.scanFile(res.path());
        })
        .then(() => {
          ToastAndroid.showWithGravity(
            "Video downloaded successfully",
            ToastAndroid.LONG,
            ToastAndroid.CENTER
          );
        })
        .catch((err) => {
          console.log('Error:', err);
          ToastAndroid.showWithGravity(
            "Download failed",
            ToastAndroid.LONG,
            ToastAndroid.CENTER
          );
        });
    };
    

关键说明:

  • RNFS.scanFile()会触发Android媒体扫描器,将新下载的文件加入系统媒体库,相册就能读取到该文件。
  • 若使用Android 11+的分区存储,也可以直接将文件下载到RNFS.VideosDirectoryPath(系统默认视频目录),无需额外扫描也能被相册自动识别。

内容的提问来源于stack exchange,提问作者React_Coder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 04:42:51