在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。
我正在做某事。错了还是有错误?答案 0 :(得分:0)
在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();
});