使用Cordova文件系统插件写入Android设备,使用不同的AndroidPersistentFileLocation值

时间:2016-10-08 18:23:18

标签: javascript android cordova persistence

我正在编写一个Javascript函数,使用Cordova文件系统插件写入Android设备上的文本文件。如果在我的config.xml文件中,我使用推荐的设置:

<preference name="AndroidPersistentFileLocation" value="Internal" />

使用fs.root.getFile()致电INVALID_MODIFICATION_ERR时代码失败。但如果我使用:

<preference name="AndroidPersistentFileLocation" value="Compatibility" />

代码按预期创建并写入文件。

这可能是什么原因导致使用Compatibility代替Internal会对我的应用产生负面影响?

写入文件的代码:

window.requestFileSystem(LocalFileSystem.PERSISTENT, 0,
  function(fs) {
    var filePath = cordova.file.externalDataDirectory.replace(cordova.file.externalRootDirectory,"");
    var fileName = filePath + "acuDevice.txt";
    console.log("acuDevice fileName:"+fileName);
    fs.root.getFile(fileName, { create:true, exclusive:false },
      function(fileEntry) {
        console.log("acuDevice fileEntry:"+JSON.stringify(fileEntry));
        fileEntry.createWriter(
          function (fileWriter) {
            fileWriter.onerror = function (err) { console.log("acuDevice write failed:"+JSON.stringify(err)); };
            fileWriter.onwriteend = writeComplete;
            fileWriter.write("hello acuDevice world");
          }
        ); // createWriter
      },
      fileErrorHandler
    ); // getFile
  },
  fileErrorHandler
); // requestFileSystem

0 个答案:

没有答案