Использование Titanium на Android 4+ Я хочу получить доступ к файлу jpeg, снятому с камерой. Мне нужно достичь двух целей: вернуть данные EXIF и передать байты в конечную точку API. Моя проблема в том, что я не могу получить доступ к файлу ...Titanium 3.X getFile() из локального хранилища
Я использую сторонний модуль для обработки выбора файла (Multi Image Picker), который возвращает список местоположений файлов, используя приложение File Manager эмулятор (GenyMotion) Я могу подтвердить правильность расположения на диске. Однако, следующие всегда возвращает ложь ...
var file = Ti.Filesystem.getFile('/mnt/sdcard/DCIM/Camera/IMG_20140901_083735.jpg');
Ti.API.info('Do we have a file? ' (file.exists()? 'YES' : 'NO'));
Выходной сигнал для выше будет ... У нас есть файл? НЕТ
Дальнейшее чтение показывает, что Titanium имеет 5 предопределенных мест расположения папок, которые могут быть переданы в метод getFile(), и одна из возможных причин того, что вышеприведенный код не работает, заключается в том, что он по умолчанию находится в папке «Resouces»? Тем не менее, все, кроме одного места в папке, являются специфическими для приложения, исключение - externalStorageLocation. Теперь мое понимание устройства Android заключается в том, что любое изображение, сделанное с помощью камеры, будет храниться во внутренней системе хранения, если не присутствует SD-карта. Это верно в моем случае, как следующие списки файлов 0 ...
var extDir = Ti.Filesystem.getExternalStorageDirectory();
var dir = Ti.Filesystem.getFile(extDir);
var dir_files = dir.getDirectoryListing();
Ti.API.info('External files... ' + dir_files.length);
Выход для выше будет ... Внешние файлы ... 0
Так я прав в размышлении Appcelerator просто не включил возможность доступа к локальному хранилищу (за пределами любых конкретных приложений) в своем API? Или я что-то упускаю, и есть другой способ?
Благодаря @bharal, это поставил меня на правильный путь, чтобы решить проблему. Если бы я мог, я бы добавил +1. – AdrianHolmes
@AdrianHolmes рад, что это помогло - caipirinha, которую я имел, прежде чем я написал свой ответ, помог мне передать дух древней прохладной dood, чтобы ответить на ваш вопрос. VoodooJones, вероятно, настоящий герой. – bharal