2016-02-26 1 views
1

В TiSDK 5.1.2.GA этот пример ниже прекрасно работает и в Android 6.x без разрешения явного разрешения для этого приложения.Writing File больше не работает в TiSDK 5.2.0/Android 6.0

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.

Я делаю sth. неправильно или есть ошибка?

+2

Существует проблема в TiSDK 5.2.0 https://jira.appcelerator.org/browse/TIMOB-20440 – devha

+0

Добавлен часы билета. – Soumya

ответ

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(); 
    });