我正在使用cordova开发一款Android应用程序,希望每天创建一个文件夹并在其中存储一个txt文件。我尝试的所有方法都适用于每个Android设备的内部存储器,但不适用于外部SD卡,请看看并帮助我解决问题。
if(sDeviceVersion=='4.0' || sDeviceVersion=='4.0.4'){
var sPath = 'file:///storage/extSdCard/';
}else if(sDeviceVersion=='4.1' || sDeviceVersion=='4.1.2' ||sDeviceVersion=='4.3.1'){
var sPath = 'file:///storage/extSdCard/';
}else if(sDeviceVersion=='4.4' || sDeviceVersion=='4.4.4'){
var sPath = 'file:///storage/extSdCard/';
}else if(sDeviceVersion=='5.0' || sDeviceVersion=='5.1.1'){
var sPath = 'file:///mnt/sdcard/'; //
}else if(sDeviceVersion=='6.0' || sDeviceVersion=='6.0.1'){
var sPath = 'file:///storage/sdcard1/';
}else if(sDeviceVersion=='7.0' || sDeviceVersion=='7.1.2'){
var sPath = 'file:///storage/sdcard1/';
}
以上条件适用于4.4.4版本,5.0版本后PATH不正确。
我已经尝试了以下所有路径:/mnt 和 /storage
// sdcard0 works on all the androind for Internal Memory
// 'file:///storage/sdcard1/'; suppose to work for external in higher version but
// 'file:///mnt/sdcard/'; it works but in Internal memory ERROR
// externalSdCard -----> Not found with mnt and storage
// SECONDARY_STORAGE
// 'file:///storage/UsbDriveB/' -----------> didn't worked
// external_sd is not worked with storage and mnt
我看到很多地方都说sdcard0是内部存储,sdcard1是外部存储,但是现在好像不起作用了。有人能帮我找出路径吗?
我已经尝试过
alert(cordova.file.externalRootDirectory); // file:///storage/sdcard0/ Internal memory
alert(cordova.file.externalApplicationStorageDirectory); // path to file:///android/data...
alert(cordova.file.dataDirectory); // file:///data/androind/data/...
alert(cordova.file.externalDataDirectory); // file://storage/sdcard0/android/data/...
以上所有内容仅适用于内部存储。
外部存储的存储/读取/写入权限已经授予。