写入文件不再适用于 TiSDK 5.2.0 / Android 6.0
Writing File not anymore working in TiSDK 5.2.0 / Android 6.0
在 TiSDK 5.1 中。2.GA 下面的示例在 Android 6.x 中也可以正常工作,无需用户为此应用程序提供明确许可。
var win1 = Titanium.UI.createWindow();
var sourceFile = Ti.Filesystem.getFile(
Ti.Filesystem.getFile(Ti.Filesystem.resourcesDirectory).nativePath,
"andylution.jpg"
);
var destFile = Ti.Filesystem.getFile(
Ti.Filesystem.getFile(Ti.Filesystem.getApplicationDataDirectory(true)).nativePath,
'andylution.jpg'
);
if (sourceFile.exists() && destFile.exists() === false) {
destFile.write(sourceFile.read());
}
win1.add(Ti.UI.createImageView({
image: destFile
}));
win1.open();
但是当我更新到 TiSDK 5.2 时。0.GA 在用户允许应用程序使用存储之前,destFile 不会更具可读性。
最让我困惑的是,两个版本中的 destFile 具有相同的 File.URL。
我在做某事吗?错误还是有错误?
in Android 6,您应该至少授予一次访问文件存储的明确权限,
即使使用5.1.2.GA,我之前也试过
var win1 = Titanium.UI.createWindow();
if (!Ti.Media.hasCameraPermissions()) {
Titanium.Media.requestCameraPermissions(function() {
var sourceFile = Ti.Filesystem.getFile(Ti.Filesystem.getFile(Ti.Filesystem.resourcesDirectory).nativePath, "andylution.jpg");
var destFile = Ti.Filesystem.getFile(Ti.Filesystem.getFile(Ti.Filesystem.getApplicationDataDirectory(true)).nativePath,'andylution.jpg');
if (sourceFile.exists() && destFile.exists() === false) {
destFile.write(sourceFile.read());
}
win1.add(Ti.UI.createImageView({
image: destFile
}));
win1.open();
});
在 TiSDK 5.1 中。2.GA 下面的示例在 Android 6.x 中也可以正常工作,无需用户为此应用程序提供明确许可。
var win1 = Titanium.UI.createWindow();
var sourceFile = Ti.Filesystem.getFile(
Ti.Filesystem.getFile(Ti.Filesystem.resourcesDirectory).nativePath,
"andylution.jpg"
);
var destFile = Ti.Filesystem.getFile(
Ti.Filesystem.getFile(Ti.Filesystem.getApplicationDataDirectory(true)).nativePath,
'andylution.jpg'
);
if (sourceFile.exists() && destFile.exists() === false) {
destFile.write(sourceFile.read());
}
win1.add(Ti.UI.createImageView({
image: destFile
}));
win1.open();
但是当我更新到 TiSDK 5.2 时。0.GA 在用户允许应用程序使用存储之前,destFile 不会更具可读性。
最让我困惑的是,两个版本中的 destFile 具有相同的 File.URL。
我在做某事吗?错误还是有错误?
in Android 6,您应该至少授予一次访问文件存储的明确权限, 即使使用5.1.2.GA,我之前也试过
var win1 = Titanium.UI.createWindow();
if (!Ti.Media.hasCameraPermissions()) {
Titanium.Media.requestCameraPermissions(function() {
var sourceFile = Ti.Filesystem.getFile(Ti.Filesystem.getFile(Ti.Filesystem.resourcesDirectory).nativePath, "andylution.jpg");
var destFile = Ti.Filesystem.getFile(Ti.Filesystem.getFile(Ti.Filesystem.getApplicationDataDirectory(true)).nativePath,'andylution.jpg');
if (sourceFile.exists() && destFile.exists() === false) {
destFile.write(sourceFile.read());
}
win1.add(Ti.UI.createImageView({
image: destFile
}));
win1.open();
});