Phonegap下载文件并保存在内部存储中

时间:2015-10-16 03:24:12

标签: android cordova ionic

我正在尝试从服务器下载文件,然后使用phonegap将其保存到设备的内部存储中。这是我到目前为止所拥有的

if(ionic.Platform.isAndroid()){
  window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSystem){
    fileSystem.root.getFile("test.mp3", {
      create: true,
      exclusive: false
    }, function(fileEntry){
      var sPath = fileEntry.fullPath; // equals /test.mp3
      // sPath = "file:///storage/sdcard0/test.mp3";
      var fileTransfer = new FileTransfer();
      fileEntry.remove();
      fileTransfer.download(
        ringtone.streamUrl,
        sPath,
        function(theFile){
          alert(theFile);
        }
        );
    });
  }, null);
}

问题在于,当我给出像file:///storage/sdcard0/test.mp3这样的绝对文件路径时,它会将文件完美地下载到内部存储器,但如果使用sPath变量则不能正常工作。据我所知,我无法获得内部存储目录的绝对路径。我们如何使用phonegap在android中以file:///格式获取内部存储路径。

1 个答案:

答案 0 :(得分:0)

我不确定这是否是标准或推荐的方式,但我已经在LG G2,Samasung Galaxy S3和2款Motorolla手机上进行了测试,效果非常好。 我只是使用以下命令连接到模拟器

adb shell

并输入

ls -la

在结果中,在根/目录中有一个名为sdcard的目录,该目录是位于其他位置的原始sdcard文件夹的符号链接

ls -la

sdcard -> storage/sdcard0

所以路径file:///sdcard/test.mp3为我做了诀窍。