我正在尝试将图像保存到 Android 8.0.0 上的外部存储,但写入总是失败,代码在 8 以下的 Android 上运行良好。我已请求存储权限,该应用有权读取和写入外部存储
var imageBlob = Ti.Filesystem.getFile(Ti.Filesystem.externalStorageDirectory, "test.png");
var external = Ti.Filesystem.getFile(Ti.Filesystem.externalStorageDirectory);
if (Ti.Filesystem.isExternalStoragePresent()) { //returns true
Ti.API.info("external storage present");
if (!external.exists()) { //returns false
if (external.createDirectory()) { //returns false
Ti.API.info("directory created");
} else {
Ti.API.info("error creating dir");
}
Ti.API.info("external.exists= " + external.exists());
}else{
var f = Ti.Filesystem.getFile(Ti.Filesystem.resourcesDirectory, "original.png");
if(file.exists()){ //returns true
if(imageBlob.write(file.read())){ //returns false
Ti.API.info("image saved");
}
}
}
}
编辑:感谢 TiSlack 成员之一的帮助,我能够解决问题,而不是使用 Ti.Filesystem.requestStoragePermissions 来请求我使用的存储权限
var permissions = ['android.permission.WRITE_EXTERNAL_STORAGE'];
Ti.Android.requestPermissions(permissions, function(e) {...})